原本就有用Flask celery來做后臺異步任務(wù)。
現(xiàn)在有需求需要添加定時任務(wù)
例如每一小時檢查一下還在使用的,但是未同步到CDN的文件,然后進(jìn)行同步
配置過程
celery的配置,task的編寫都和之前區(qū)別不大
關(guān)鍵在這個參數(shù)(例如寫在celeryconfig.py中)
CELERYBEAT_SCHEDULE = {
'every-minute': {
'task': 'celery_tasks.used_apk_cdn',
# 'schedule': crontab(minute='*/1'),
# 'args': (1,2),
'schedule': timedelta(seconds=5)
},
}
要把這個配置傳遞給celery,可以用這個
celery.config_from_object('celeryconfig')
具體的task舉例:
@celery.task(name='celery_tasks.used_apk_cdn')
def used_apk_cdn():
logging.info("lalala")
pass
最后,命令行啟動celery即可
$ celery -A tasks worker --loglevel=info
這個定時task和原先的flask的異步task可以并行不沖突,運(yùn)行celery都會啟動,關(guān)鍵在于配置參數(shù)的conf。