次のような関数があります。
def long_running_with_more_values(start, stop):
headers = get_headers.delay(start, stop)
insert_to_db.delay(headers)
ネットから要求されたデータを並列に一括処理する機能です。get_headers + insert_to_db はメッセージ スタックに対して発火し、最後にセロリ ワーカーによって処理されるため、実行がブロックされません。
start と stop の間のすべての数値を処理する必要がありますが、これをセクション (範囲) に分割できます。
範囲が ~20000 の場合、操作 get_headers が最適であることがわかりました。ここで、範囲 = (停止 - 開始)
任意の範囲を 20000 のグループに分割し、各グループを関数で実行する方法を知りたいので、関数が異なる開始値と停止値で複数回呼び出されますが、前の範囲はまだカバーされています。
したがって、start と stop の開始値がそれぞれ 1 と 100000 の場合、次のように get_headers が 5 回呼び出されることを期待します。
[1,20000][20001,40000][40001,60000][60001,80000][80001,100000]