Я использую resque в своем приложении для отложенных заданий, где я не могу асинхронно посылать электронные письма и смс большинству пользователей. А данные хранятся в mongodb, mongoid - это ODM, соединяющий рельсы и mongo.
Моя модель Mongoid выглядит так
class Item
include Mongoid::Document
include Geo::LocationHelper
field :name, :type => String
field :desc, :type => String
#resque queue name
@queue = :item_notification
#resque perform method
def self.perform(item_id)
@item = Item.find(item_id)
end
end
Я могу добавлять задания для восстановления, я подтвердил это с помощью resque-web. Всякий раз, когда я начинаю Resque-работник
QUEUE=item_notification rake resque:work
я получил неинициализированную константу Item , так как я использую resque в качестве самоцвета рельсов и запускаю рейк в корне rails, я считаю, что мои модели mongoid должны быть загружены.
После копания лота я обнаружил, что мы можем явно попросить rake загрузить окружение с помощью
QUEUE=item_notification rake environment resque:work
но теперь я также получил ту же ошибку неинициализированная константа Item
Может кто-нибудь мне помочь?
и мой