Flask

FLask Celery定时任务

2015-09-02  本文已影响7739人  cafedeflore

原本就有用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。

上一篇 下一篇

猜你喜欢

热点阅读