如何将 Sidekiq 延迟与工作人员一起使用

Wag*_*sUK 3 ruby-on-rails sidekiq

我有一个工作人员对外部 API 进行多次调用的情况。问题是我们有一个阈值,即每小时可以调用这个 API 的次数。

我想要做的是创建一个工作程序,它将对这个外部 API 进行如此多的顺序调用。如果在这些调用之间我们收到错误,因为我们已经达到了我们在那个小时内允许的连接数,那么工作人员将保存文档并安排一个新工作人员在稍后的时间完成剩余的 API 调用(也许1, 2 小时后。理想情况下,这应该是可配置的,例如:10 分钟、1 小时等)。

有什么办法可以做到这一点吗?

Asc*_*hen 6

使用 SideKiq,您可以使用友好的 API 安排何时执行作业:

MyWorker.perform_in(3.hours, 'mike', 1) # Expect a duration
MyWorker.perform_at(3.hours.from_now, 'mike', 1) # Expect a date
Run Code Online (Sandbox Code Playgroud)

检查一下:计划作业