遅延ジョブのアプリケーションでresqueを使用しています。この場合、大量のユーザーに非同期で電子メールとSMSを送信できません。そして、データはmongodbに保存され、mongoidはODMがレールとmongoを接続します。
私のモンゴイドモデルは次のようになります
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にジョブを追加できます。resque-webを使用して確認しました。私がresque-workerを始めるときはいつでも
QUEUE=item_notification rake resque:work
初期化されていない定数Itemを取得しました。これは、resqueをrails gemとして使用し、rails rootでrakeを開始しているため、mongoidモデルをロードする必要があると思います。
たくさん掘った後、私は明示的にrakeに環境をロードするように頼むことができることを発見しました
QUEUE=item_notification rake environment resque:work
しかし今、私は同じエラーを初期化されていない定数アイテムを得ました
誰かが私を助けることができますか?
と私