2012-10-29 29 views
2

Rails 3.2.8,delayed_job(3.0.3),delayed_job_active_record(0.3.3)。使用WEBrick。delayed_job隨機消失的作業不執行它們

我有異步填充在啓動時高速緩存的初始化:

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

Sheepishly:我有一個工作人員在另一個環境中運行,指向同一個數據庫,它與我的臨時環境同時運行作業。這種意想不到的後果是絕不會在不同環境之間共享數據庫的好理由。