3

我们有一个 Luigi 任务,它从 3rd 方服务请求一条信息。我们限制了每分钟可以对该 API 调用执行的调用请求数。

有没有办法在每个任务的基础上指定调度程序每单位时间必须运行多少此类任务?

4

1 回答 1

2

我们在任务中实现了自己的速率限制。我们的 API 限制足够低,以至于我们可以用单个线程将其饱和。当我们收到速率限制响应时,我们只是退出并重试。

您可以做的一件事是将 API 调用声明为资源。您可以在配置中设置有多少资源可用,然后将任务消耗多少资源作为任务的属性。然后,这将限制您一次运行 n 个该任务。

在配置中:

[resources]
api=1

在任务代码中:

resources = {"api": 1}
于 2016-12-20T14:53:16.497 回答