1

のRailsプロジェクトでdelayed_job、私は何か奇妙なことに遭遇しています。

私はarticleモデルを持っています。このモデルは非常に大きくなる可能性があり、いくつかのフィールドに多くの段落のテキストがあります。

私が行った場合:

an_article.delay.do_something

作成されたDelayed::Jobものはキューに入れられず、失敗または成功としてマークされることはなく、ログはそれが存在することを認識しません。しかし、私がそうするなら

def self.proxy_method(article_id)
  an_article = Article.find(article_id)
  an_article.do_something
end

Article.proxy_method(an_article.id)

意図したとおりに機能します。

ジョブオブジェクトのサイズに関する不文律はありますか?なぜAは機能しないが、Bは機能するのでしょうか。

私が持っている理論の1つは、mongolab(430/496 mb)のデータ上限に近いため、ジョブがdbに到達しないというものですが、これを実際に証明するログやエラーはありません。


注:heroku、rails3.1でmongoidを使用するdelayed_job

4

1 に答える 1

1

私が経験したことから、オブジェクトをキューにプッシュするのではなく、オブジェクトのIDを使用してください。これは問題があり、デバッグが非常に困難です。

私はこのトピックに関する詳細な投稿を https://stackoverflow.com/a/15672001/226255に書きました

于 2013-07-10T12:11:12.500 に答える