如何在 sidekiq 中模拟立即重试按钮
How to emulate the retry now button in sidekiq
使用 Sidekiq v5.1.3,我有一个场景,理想情况下应该允许用户通过自定义仪表板从 "morgue" 手动重试死作业。
我绝对可以使用 Sidekiq 自己的网站 UI 中 dead 选项卡下的 "Retry now" 按钮来执行此操作,但我不知道如何从我自己的应用程序中以编程方式调用它。
由于文档明确指出:
The Web UI uses the API exclusively - anything you can do in the UI can be scripted with the API.
我想知道如何使用工作 ID 或任何其他信息来执行此操作...
使用Sidekiq::DeadSet
,这是可能的。
例如,您可以列出所有死掉的工作:
Sidekiq::DeadSet.new.to_a
这将 return 一个包含 Sidekiq::SortedEntry
个实例的数组,您可以 运行 #retry
打开它。
或者,如果你有jid
,你可以通过单个
查找:
job = Sidekiq::DeadSet.new.find_job('02df57719b59ab3a2b3ca3f8')
job.retry
这是 Sidekiq API 的一部分。
使用 Sidekiq v5.1.3,我有一个场景,理想情况下应该允许用户通过自定义仪表板从 "morgue" 手动重试死作业。
我绝对可以使用 Sidekiq 自己的网站 UI 中 dead 选项卡下的 "Retry now" 按钮来执行此操作,但我不知道如何从我自己的应用程序中以编程方式调用它。
由于文档明确指出:
The Web UI uses the API exclusively - anything you can do in the UI can be scripted with the API.
我想知道如何使用工作 ID 或任何其他信息来执行此操作...
使用Sidekiq::DeadSet
,这是可能的。
例如,您可以列出所有死掉的工作:
Sidekiq::DeadSet.new.to_a
这将 return 一个包含 Sidekiq::SortedEntry
个实例的数组,您可以 运行 #retry
打开它。
或者,如果你有jid
,你可以通过单个
job = Sidekiq::DeadSet.new.find_job('02df57719b59ab3a2b3ca3f8')
job.retry
这是 Sidekiq API 的一部分。