2
私は初期化に時間がかかり、多くのメモリを消費する重い外部ライブラリクラスを持っています。タスクインスタンスごとに最低1回は作成したいと思います。は、各ワーカープロセスごとに、またはアプリケーションごとに1回ずつ初期化されたCelery Taskですか?
class NlpTask(Task):
def __init__(self):
print('initializing NLP parser')
self._parser = nlplib.Parser()
print('done initializing NLP parser')
@property
def parser(self):
return self._parser
@celery.task(base=NlpTask)
def my_task(arg):
x = my_task.parser.process(arg)
# etc.
セロリは、32個のワーカー・プロセスを開始しますので、私はタスクインスタンスは、各作業員ごとに作成されることを前提としていて、私は、印刷"initializing ... done"
32回を期待したいです。驚いたことに、私は印刷を一度にしています。実際にそこで何が起こるのですか?ありがとう。
これは私の主張です。私は一人一人が一度は期待していましたが、それはセロリインスタンスごとに1回のようです。私は質問を編集しました – davka
@davka更新答え。 – ChillarAnand