我们可以限制luigi任务的吞吐量吗?

问题描述:

我们有一个Luigi任务,要求从第三方服务中获取一条信息。我们仅限于每分钟对该API调用执行的调用请求数量。我们可以限制luigi任务的吞吐量吗?

有没有一种方法可以在每个任务的基础上指定调度程序每单位时间必须运行的这种类型的任务?

我们在任务中实现了我们自己的速率限制。我们的API限制足够低,以至于我们可以用单线程来饱和它。当我们收到费率限制回复时,我们只需退出并重试。

您可以做的一件事是将API调用声明为resource。您可以设置配置中有多少资源可用,然后将该任务消耗的资源数量设为property on the task。这会限制你一次运行n个任务。

[resources] 
api=1 

在代码为任务::

resources = {"api": 1} 

在配置