tips: 使用工廠函式接入
code:
celery配置檔案:
celery_config.py
broker_url =
'redis:'
result_backend =
'redis:'
task_serializer =
'json'
result_serializer =
'json'
accept_content =
['json'
]timezone =
'asia/shanghai'
enable_utc =
true
worker_concurrency =
1#celery worker併發數
worker_max_tasks_per_child =
5#每個worker最大執行任務數
init
flask的__init__.py
編寫
from celery import celery
from flask import flask
celery = celery(__name__, broker=
'redis:'
)#使celery接入flask上下文
defregister_celery
: celery.config_from_object(
'celeryconfig'
)class
contexttask
(celery.task)
:def
__call__
(self,
*args,
**kwargs):)
:return self.run(
*args,
**kwargs)
celery.task = contexttask
def():
#註冊元件
run.py
if __name__ ==
'__main__':)
).push(
)true
)最後再虛擬環境中執行
celery -a run.celery worker -l debug -f celery_log.log -p eventlet
這樣就可以愉快的在celery的task任務中使用flask上下文,如sqlalchemy的資料庫查詢等等,我們非同步任務的開發就會更加便捷! flask使用celery傳送郵件
執行本檔案 linux上 celery a tasks.celery worker l info window上 celery a tasks.celery worker pool solo l info 在專案資料夾下建立tasks.py檔案 from flask import flask fro...
flask 工廠模式與celery結合
簡單介紹一下celery celery 是乙個非同步任務佇列。你可以使用它在你的應用上下文之外執行任務。總的想法就是你的應用程式可能需要執行任何消耗資源的任務都可以交給任務佇列,讓你的應用程式自由和快速地響應客戶端請求。官方文件 中文文件 flask 中使用 celery 別人寫的,大家可以參考著來...
flask工廠函式中celery的應用
一定結合自己的專案檔案對應的模組來看,關於專案名下方會有標註,本篇只介紹celery作為非同步任務呼叫功能的呼叫,定時任務我用的flask apscheduler庫 先介紹下我的模組劃分 tasks.py celery函式放在對應應用下 manage.py 使用flask script啟動,啟動檔案...