2010-09-17 57 views
2

我已经运行的delayed_job,并击中了一些错误,但现在我不知道什么是坐在作业队列或正在发生的事情与他们....如何使用delayed_job查看正在排队的作业发生了什么?

我怎么能明白这一点,所以我可以调试它是否能够执行已放入队列中的内容?

这里就是我所说的工作(这是一个cron任务的一部分)和邮件调用:

class SomeMailJob < Struct.new(:contact, :contact_email) 
    def perform 
    OutboundMailer.deliver_campaign_email(contact,contact_email) 
    end 
end 

#class OutboundMailer < ActionMailer::Base 
class OutboundMailer < Postage::Mailer 

    def campaign_email(contact,email) 
    subject email.subject 
    recipients contact.email 
    from  'Timothy Fong <[email protected]>' 
    sent_on Date.today 

    body  :email => email 
    end 

回答

4

您可以通过Delayed :: Job模型(我认为它的名称在更高版本中可能已更改)深入了解您的delayed_job队列。它只是一个ActiveRecord模型,你可以做所有你想做的事情。找到所有,找到与failed_at设置,找到与locked_by设置(目前正在工作)。

我发现如果先to_yaml他们会更容易阅读:y Delayed::Job.all从控制台。

2

你必须要小心,因为25后的默认设置Delayed::Job.destroy_failed_jobs = false尝试工作会被删除。然后您可以看到哪些作业失败(以及fail_at字段中的什么时间)。有一个耙子任务来清理它们。

另一个需要关注的队列是Resque,它带有一个用于监视队列的小管理应用程序。 Its introduction是一个很好的阅读。

相关问题