原本就有用Flask celery来做后台异步任务。
现在有需求需要添加定时任务
例如每一小时检查一下还在使用的,但是未同步到CDN的文件,然后进行同步
配置过程
celery的配置,task的编写都和之前区别不大
关键在这个参数(例如写在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可以并行不冲突,运行celery都会启动,关键在于配置参数的conf。