Flask 使用Celery並且使其接入上下文

2021-10-21 10:14:37 字數 1373 閱讀 1984

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啟動,啟動檔案...