是否有一个参数可以传递给delayed_job,以防止它从delayed_jobs 表中删除已完成的作业?
有点像destroy_failed_jobs
但对于已完成的工作
有任何想法吗?
扩展@jefflunt的答案。
我添加了一个迁移来创建一个表来包含已完成的作业
class CreateCompletedJobs < ActiveRecord::Migration
def change
create_table :completed_jobs do |t|
t.integer "priority", :default => 0
t.integer "attempts", :default => 0
t.text "handler", :limit => 2147483647
t.datetime "run_at"
t.datetime "completed_at"
t.string "queue"
t.timestamps
end
end
end
然后是一个模块
class CompletedJob < ActiveRecord::Base
end
最后将钩子添加到我要存储的作业中
def success job
save_completed_job job
end
private
def save_completed_job job
CompletedJob.create({
priority: job.priority,
attempts: job.attempts,
handler: job.handler,
run_at: job.run_at,
completed_at: DateTime.now,
queue: job.queue
})
end
由于我有不止一项工作,因此我将成功方法挂钩放置在一个模块中,并将其包含在我想要存储的所有工作中。 (注意:有些不值得存储)
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)