Ответы пользователя по тегу Sinatra
  • Как писать в БД внутри бекграунд воркера?

    viktorvsk
    @viktorvsk
    Ошибка же элементарная и не связана ни с какими перечисленными инструментами.
    Что делать?
    require 'sidekiq'
    require 'awesome_model'
    AwesomeModel # => ???
    ...

    Если не ок, смотрите, почему у вас модель не загружается.
    Если ок, тогда:
    AwesomeWorker.perform_async ::AwesomeModel.new.object_id.to_i

    два двоеточия перед классом или модулем заставляют искать его (класс или модуль) не в текущем контексте (модуля), а от самого начала (от Object). Но, на самом деле, мало вероятно.

    P.S.
    Я бы для этого взял Resque:
    1. Никогда никаких проблем не было, заводился сразу
    2. Процесс рождается и умирает (когда плюс, когда минус. В моем случае - был плюс, потому что процесс в работе становился очень жирным и не выгружался в случае с DJ или Sidekiq, а в Resque заканчивал работу, умирал и освобождал память)
    3. Поддерживается гитхабом и хероку
    Ответ написан
    1 комментарий