2

セロリはすべてのタスクで自分自身をフォークしますか? 私はこのようなものを持っているとしましょう:

obj = object()

@celery.task
def print_id():
   print id(obj)

#another server
print_id.delay()
print_id.delay()
print_id.delay()

タスクを数回 (セロリを再起動せずに) 呼び出すとき、ID は常に同じですか?

4

1 に答える 1

2

場合によります。同時実行に関するドキュメントを参照してください。

で少なくとも 2 つのワーカーを設定すると、同じままではなくなりますmultiprocessingid1 つのノードを使用し、Xタスクの実行後にそれを再起動しても (セロリ ワーカーのオプション) id、同じままではありません。

基本的に、コード内でそれに依存するべきではありません。Celeryを介してタスクを実行する目的は、タスクを分散することです。

なぜそのような質問をしてもいいですか?それが必要なユースケースはありますか?

于 2013-07-19T07:03:11.753 に答える