我有類似的功能:對一系列值的子集進行迭代的Pythonic方法?
def long_running_with_more_values(start, stop):
headers = get_headers.delay(start, stop)
insert_to_db.delay(headers)
該函數是從在平行於網請求的批處理數據。 get_headers + insert_to_db觸發消息堆棧並由芹菜工作人員處理,因此不會阻止執行。
它必須在開始和停止之間處理每個數字,但可以將其分成多個部分(範圍)。
我發現操作get_headers是最佳的當範圍爲〜20000,其中範圍=(停止 - 啓動)
我想知道我怎麼可以拆分任意範圍爲20000組,每個運行通過這個函數分組,所以我最終得到的函數被多次調用,具有不同的開始和結束值,但仍然覆蓋了前一個範圍。
所以爲1和100000分別我期望get_headers啓動和停止初始值與以下調用5次:
[1,20000][20001,40000][40001,60000][60001,80000][80001,100000]
如果你只是在尋找一種方法來將一個列表分割成'n'個元素的段,[看到這個問題](http://stackoverflow.com/questions/1624883/alternative-way-to-split-一個列表 - 到 - 組 - 的-N)。 – kojiro 2013-03-10 00:56:27
不,我想分割一個任務,通過將兩個ID的範圍指定爲更高效的子任務來處理項目 – Jharwood 2013-03-10 00:59:18
考慮'range(start,stop,20000)'來獲得分區邊界。 – kojiro 2013-03-10 01:10:35