[英]What is the best approach when using SQLite3 from multiple module in the same global python application?
[英]Using global variables in Celery: What's the best approach?
我使用Django 1.10和Celery編寫應用程序。 我試圖在芹菜中創建一個循環,該循環可以通過Django啟動和停止。
我的想法看起來像這樣(非常簡單):
_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
問題在於,芹菜通常在1個以上的工作線程中運行,並且_run在線程之間不可訪問。
問題:實現該功能的最佳方法是什么? 我正在考慮設置數據庫變量,但恐怕它不是最佳方法。
一種可能的方法是創建將永遠運行的任務,然后根據請求將其停止。
from proj.celery import app
app.control.revoke(task_id)
http://docs.celeryproject.org/en/latest/faq.html#can-i-cancel-the-execution-of-a-task
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.