flask非同步資料交換celery的使用

安全劍客發表於2019-08-20
在開發過程中,耗時長,超時的任務經常發生,比如:獲取後端某個大檔案資料超時、需要後端計算任務超時,等等,此時我們就會很自然的想到非同步方式,根據需要完成的任務建立一個task_id, 由前端來監聽該任務是否完成。
初始化celery
celery = Celery('celery_demo', broker=app.config.get('CELERY_BROKER_URL'),backend=app.config.get('CELERY_BACKEND_URL'))
在需要非同步執行的方法上使用@celery.task裝飾器
@celery.task
 def add(a,b):
  return a+b
在方法呼叫時,需要使用fun.delay(args)
add.delay(1,2)
celery啟動
celery -A apps.celery worker -l info --concurrency=3

坑:在使用celery非同步進行資料庫進行互動時,務必手動斷開連線,否則容易造成,lost connection error


來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/31559985/viewspace-2654354/,如需轉載,請註明出處,否則將追究法律責任。

相關文章