我们有一个Luigi任务,要求第三方服务提供一条信息。我们每分钟可以执行的API调用请求数量受到限制。
有没有办法在每个任务的基础上指定调度程序每单位时间运行多少个这样的任务?
答案 0 :(得分:2)
我们在任务中实施了自己的速率限制。我们的API限制足够低,我们可以使用单个线程使其饱和。当我们收到速率限制响应时,我们只需退回并重试。
您可以做的一件事是将API调用声明为resource。您可以在配置中设置可用资源的数量,然后设置任务消耗的资源数量为property on the task。这将限制您一次运行该任务的任务。
配置中的:
[resources]
api=1
任务代码中的:
resources = {"api": 1}