让我们有很多作业排队等待某个 Date my_date
。
这个完全相同的日期有很多工作,他们中的一些人在他们的 schedule_date 后仅工作 20 分钟。
一旦我进入我的perform
方法,我如何检索这个预定日期?
ps:我不能将这个 schedule_date 作为参数传递,因为它是一个 Cron 作业(我只能传递静态参数)
ps2:github 问题https://github.com/mperham/sidekiq/issues/3945
编辑:现在这里是部分答案,仍然不令人满意(例如不能重试):
# wait for Sidekiq::Workers to be updated (5 sec)
sleep 8
the_exact_date = Time.at(Sidekiq::Workers.new.find { |_, __, w| w["payload"]["jid"] == jid }[2]["run_at"])
编辑 2:sidekiq cron 的当前 PR 完全解决了我的问题:https : //github.com/ondrejbartas/sidekiq-cron/pulls
如果您使用 Sidekiq-cron :
我提交了一个 PR,它被接受了。解决方案是date_as_argument
在初始化 sidekiq-cron 作业时使用可选参数:
https://github.com/ondrejbartas/sidekiq-cron#getting-started
本文收集自互联网,转载请注明来源。
如有侵权,请联系[email protected] 删除。
我来说两句