2013-03-05 68 views
1

我已經推遲作業設置與以下設置:延遲工作不發送郵件 - 如何調試?

Delayed::Worker.max_attempts = 3 
Delayed::Worker.delay_jobs = !Rails.env.test? 
Delayed::Worker.destroy_failed_jobs = false 
Delayed::Worker.sleep_delay = 120 

我已經開始了一個工人,從事開發工作,並已配置的ActionMailer發送郵件。

而且我把它用在我的控制器如下:

OrderMailer.delay.order_notification(@order) 

我可以看到蒙戈創造的工作機會,他們不顯示在控制檯中的任何錯誤,我該如何找出是否有任何錯誤??有沒有某種工作日誌?

我得到的控制檯以下:

1 jobs processed at 3.6244 j/s, 0 failed .. 
+0

我有完全相同的問題,你是否設法解決你的問題? – Intrepidd 2013-06-02 19:26:14

回答

1

應該有一個log/delayed_job.log列出處理的作業。您還可以使用數據庫訪問失敗任務的錯誤。

>> failed_jobs = Delayed::Job.where('attempts > 0') 
>> failed_jobs.first.last_error 
+0

failed_jobs返回0,因此該作業被視爲成功,但未送達郵件。 – ismail 2013-03-06 08:51:09

+0

那麼錯誤是在你的郵件不是dj。在操作郵件程序中打開錯誤調試。添加此配置文件'config.raise_delivery_errors = true' – jvnill 2013-03-06 08:57:51

+0

該設置已被設置爲真 – ismail 2013-03-11 16:02:39

0

另一個偉大的方式來調試DelayedJob是寶石延遲招聘網站(見https://github.com/ejschmitt/delayed_job_web),它給你一個「Resque像Web界面延遲工作」,通過http://localhost:3000/delayed_job訪問。該界面提供了一個「失敗的工作」-Tab,在那裏你可以調查「最後一個錯誤」 - 字段比在終端更方便...