在一个带有 的 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起作用?
我的一个理论是,因为我有点接近 mongolab(430 / 496 mb)的数据上限,所以这项工作永远不会进入数据库,但我没有日志或错误来真正证明这一点。
注意:delayed_job 在 heroku、rails 3.1 上使用 mongoid