delayed_job随机消失的作业而不执行它们

时间:2012-10-29 19:38:14

标签: ruby-on-rails-3 delayed-job

Rails 3.2.8,delayed_job(3.0.3),delayed_job_active_record(0.3.3)。使用WEBrick。

我有一个初始化程序,它在启动时异步填充缓存:

MyModel.delay.get_lots_of_records
MyModel.delay.get_some_other_records
MyOtherModel.delay.get_tons_of_records
MyOtherModel.delay.get_some_other_records

在开发环境中,这可以正常工作,如delayed_job日志和缓存日志所示。

然而,在分段中,有时会执行1或2个,或者有时不会执行这些作业。通常,执行至少一个,通常是相同的(但不总是)。如果我在启动后查看delayed_jobs表,我会看到所有4个作业被写入,然后在2秒后消失。

根据建议here,我有

# config/initializers/delayed_job_config.rb
Delayed::Worker.destroy_failed_jobs = false

但是工作仍然很快被删除而没有失败或执行。

如果我在Delayed::PerformableMethod.perform处插入断点,我看到只有在作业实际执行时才调用该方法,因此问题就在上游。 destroy方法在perform之后调用,所以我不确定发生了什么。

我正在寻找故障排除建议或其他诊断措施。

1 个答案:

答案 0 :(得分:1)

懦弱地说:我有一个工作人员在另一个环境中运行,指向同一个数据库,它正在与我的暂存环境同时运行作业。这种意想不到的后果是永远不会在环境之间共享数据库的好理由。

相关问题