2017-08-16 4 views
1

私はセロリの仕事をしています。私は単一のセロリ労働者を設定すると完璧に動作しますが、私が並行性を使用すると、すべてがうんざりします。どのようにして、変数がマングルされているクリティカルセクションをロックできますか?セロリタスクで変数をロックする方法は?

inb4:Python 3.6を使用して、Redisはブローカと結果の両方をバックアップします。 threading.Lockはここでは役に立ちません。

答えて

0

セロリが複数の作業者(プロセス)上で実行されている限り、スレッドロックはシングルプロセス内で動作するため、役立たない場合があります。さらに、スレッディングロックは、全体的なプロセスを制御するときに使用しますが、セロリを使用すると、それを達成する方法はありません。

セロリには分散ロックが必要です。 djangoの場合、私はいつもdjango-cacheを使用しています:here。 Redisベースのより一般的なロックが必要な場合は、任意のPythonアプリケーションのために働くsherlockを使用することができます。

+0

最初のURLにつまずいたが、グーグルで見つかっていた間にあなたは指摘したが、何らかの理由で簡単な方法があると思っていた。とにかく、sherlockは問題を解決しました。ありがとうございました。 – f1st

関連する問題