延迟_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

在开发环境中,这可以正常工作,如delay_job日志和缓存日志所证明的。

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

根据建议,我有

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

但是,工作仍在很快删除而不会失败或执行。

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

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

令人毛骨悚然的:我有一个工人在另一个环境中奔跑,指向同一DB,这与我的登台环境同时运行了工作。这种意外的后果是在环境之间永不共享DB的一个很好的理由。

最新更新