Ruby on rails 延迟作业:如何检索和更新计划作业?

Ruby on rails 延迟作业:如何检索和更新计划作业?,ruby-on-rails,ruby,delayed-job,Ruby On Rails,Ruby,Delayed Job,我使用延迟作业在特定时间异步执行作业。这是在我的模型类中指定的。现在我需要弄清楚如何重新安排工作,以防我需要重新安排工作。如果我能在我的模型上有一个方法来检索作业并及时更新run_,那就太好了。如何处理延迟作业?如果使用延迟作业活动记录,只需处理延迟::作业模型,比如activerecord 问题是你想找回什么样的工作,以及如何处理。 无论您如何管理作业以便以后检索,都应使用以下方法: # submit the job and remember id job_id_remember_for_la

我使用延迟作业在特定时间异步执行作业。这是在我的模型类中指定的。现在我需要弄清楚如何重新安排工作,以防我需要重新安排工作。如果我能在我的模型上有一个方法来检索作业并及时更新run_,那就太好了。如何处理延迟作业?

如果使用延迟作业活动记录,只需处理延迟::作业模型,比如activerecord

问题是你想找回什么样的工作,以及如何处理。 无论您如何管理作业以便以后检索,都应使用以下方法:

# submit the job and remember id
job_id_remember_for_later = Delayed::Job.enqueue(job).id
#...
# later
job = Delayed::Job.find_by_id(job_id_remember_for_later)
job.update_attributes(:run_at => new_time, :attempts => 0)
job.save
此代码肯定不安全,您需要检查锁等。 还要注意的是,您需要配置delayed_job,以便在max_尝试失败后,默认情况下保留已删除的失败作业

Delayed::Worker.destroy_failed_jobs = false

如果使用Delayed\u Job\u active\u record,您可以简单地处理Delayed::Job模型,比如说activerecord

问题是你想找回什么样的工作,以及如何处理。 无论您如何管理作业以便以后检索,都应使用以下方法:

# submit the job and remember id
job_id_remember_for_later = Delayed::Job.enqueue(job).id
#...
# later
job = Delayed::Job.find_by_id(job_id_remember_for_later)
job.update_attributes(:run_at => new_time, :attempts => 0)
job.save
此代码肯定不安全,您需要检查锁等。 还要注意的是,您需要配置delayed_job,以便在max_尝试失败后,默认情况下保留已删除的失败作业

Delayed::Worker.destroy_failed_jobs = false

嗨,我有同样的东西。为什么你要保留失败的工作。我们不想在重新计划运行之前更新时间吗?如果要删除它,是否要更新时间?我错过什么了吗?嗨,我也错过了。为什么你要保留失败的工作。我们不想在重新计划运行之前更新时间吗?如果要删除它,是否要更新时间?我错过什么了吗?