8

セロリのワーカーノード間で小さな情報 (キャッシュされた認証トークン、統計など) を共有したいと考えています。

タスク ファイル内にグローバルを作成すると、それはワーカーごとに一意になります (私のワーカーはプロセスであり、ライフタイムは 1 タスク/実行です)。

ベストプラクティスは何ですか? 状態を外部 (DB) に保存し、昔ながらの共有メモリを作成する必要がありますか (セロリのプール実装が異なるため難しい場合があります)。

前もって感謝します!

4

1 に答える 1

9

私はついにまともな解決策を見つけました-core python multiprocessing-Manager:

from multiprocessing import Manager
manag = Manager()
serviceLock = manag.Lock()
serviceStatusDict = manag.dict()

このdictはすべてのプロセスからアクセスでき、同期されていますが、同時にアクセスするときはロックを使用する必要があります(他のすべての共有メモリ実装のように)。

于 2012-03-05T13:34:51.690 に答える