我有一种情况,我有一个工作人员,可以多次调用外部API。问题是我们每小时可以对此API进行多次调用的阈值。
我想要做的是创建一个工作程序,它将对这个外部API进行许多顺序调用。如果在这些调用之间我们收到错误,因为我们已经达到了那个小时内允许的连接数,那么工作人员将保存文档并安排新工作人员以便稍后完成剩余的API调用(也许1,2小时后。理想情况下,这应该是可配置的,例如:10分钟,1小时等)。
有没有我能做到的?
答案 0 :(得分:3)
使用SideKiq,您可以安排何时使用友好的API执行作业:
MyWorker.perform_in(3.hours, 'mike', 1) # Expect a duration
MyWorker.perform_at(3.hours.from_now, 'mike', 1) # Expect a date
检查出来:Scheduled Jobs
答案 1 :(得分:1)
您需要Sidekiq Enterprise及其速率限制API。另一种方法是自己跟踪速率限制并手动重新安排作业。