所以我在用户创建某个模型后使用Delayed :: Job worker(在Heroku上)作为after_create回调。
但事实证明,一个常见的用例是用户创建的东西,然后立即删除它(可能是因为他们犯了错误或其他东西)。
当发生这种情况时,工作人员会被激活,但是当他们查询手头的模型时,它已经被删除了,但是由于自动重试功能,这个命中注定的工作将重试25次,绝对不会工作。
有什么方法可以捕获某些错误,当它们发生时,阻止该特定作业再次重试,但如果不是那个错误,它将来会重试吗?
答案 0 :(得分:3)
用您对delayed_job调用的函数进行抽象检查。进行相关检查,以确定您所希望的工作是否可以继续进行,并在该工作上工作或返回成功。
答案 1 :(得分:3)