2016-12-16 83 views
1

我們有一個Luigi任務,要求從第三方服務中獲取一條信息。我們僅限於每分鐘對該API調用執行的調用請求數量。我們可以限制luigi任務的吞吐量嗎?

有沒有一種方法可以在每個任務的基礎上指定調度程序每單位時間必須運行的這種類型的任務?

回答

1

我們在任務中實現了我們自己的速率限制。我們的API限制足夠低,以至於我們可以用單線程來飽和它。當我們收到費率限制回覆時,我們只需退出並重試。

您可以做的一件事是將API調用聲明爲resource。您可以設置配置中有多少資源可用,然後將該任務消耗的資源數量設爲property on the task。這會限制你一次運行n個任務。

[resources] 
api=1 

在代碼爲任務::

resources = {"api": 1} 

在配置