2017-07-07 4 views
0

ImはDjango 1.10とCeleryを使用してアプリケーションを作成しています。 Djangoで開始および停止できるループをセロリで作成しようとしています。問題は、セロリは、通常> 1作業スレッドで実行され、そして_runは、スレッド間でアクセス可能ではないことですセロリでグローバル変数を使用する:最適なアプローチは何ですか?

_run = False 

def do_work(): 
    global _run 
    while _run: 
    # Do something 

@app.task 
def start(): 
    global _run 
    _run = True 
    do_work() 

@app.task 
def stop(): 
    global _run 
    _run = False 

私の考えでは、このようなもの(非常にシンプルに)見えます。

質問:機能を達成するための最良の方法はありますか? 私はデータベース変数を設定することを考えていますが、私はそれが最良の方法ではないことを恐れています。

+0

これは、XYの質問のように思えます。なぜループが必要なのですか? –

+0

ループは外部APIからデータをポーリングし、システムデータベースにデータを取り込みます。私はあなたが「XY質問」を意味するのか理解していません。 – Vingtoft

+0

なぜセロリの仕事をしていますか?間違ったユースケースのように思える – Anentropic

答えて

関連する問題