目前專案用的flask,需要做些定時任務,利用celery,redis,瞎折騰了很久,勉強能實現,做下記錄。專案簡單結構
__init__.py
tasks.py
其他
from flask import flask
from celery import celery
#這是flask文件推薦的例項celery應用的函式,相當於重寫了task的呼叫方法,使其可以應用在flask的上下文中
taskbase=celery.task
class contexttask(taskbase):
abstract=true
def __call__(self,*args,**kw):
return taskbase.__call__(self,*args,**kw)
celery.task=contexttask
return celery
需要新增一些配置
celery_broker_url='redis://localhost:6379',#broker 位址
celery_result_backend='redis://localhost:6379',#結果儲存位址
#定時任務,
celerybeat_schedule = ,
'task2': ,
}
)在tasks.py 中可以寫入自己要定時執行的函式
from . import celery
@celery.task
def test_task():
pass
@celery.taskdef test_task1():
pass
啟動 celery
Flask Celery 非同步任務
pip install redis pip install celery 之所以要安裝redis,是因為需要redis作為celery的訊息中介軟體 新建乙個celery fun.py作為celery的配置檔案,並把所有相關方法放進此py。create celery from celery impo...
Flask Celery 基本案例 01
win10 python3.7 flask 1.1.1 celery 4.4.1 virtualenv venv no site packages 啟用虛擬環境 venv scripts activate pip install flask 1.1.1 celery 4.4.1 redis 安裝ge...
mysql設定定時入伍 mysql設定定時任務
今天遇到了個需要每天定時執行的任務,在mysql資料庫裡面提供了這樣的功能,正好整理下分享出來。1.首先檢查是否開啟了定時任務 檢視event是否開啟 show variables like event sche 將事件計畫開啟 set global event scheduler 1 將事件計畫關...