美文网首页Flask
FLask Celery定时任务

FLask Celery定时任务

作者: cafedeflore | 来源:发表于2015-09-02 14:37 被阅读7739次

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

    相关文章

      网友评论

      • 2c5ee85e7aa8:这应该是设置beat,可是怎么设置,都不太对
      • ruiaylin:经过排查 需要单独设置 beat
      • ruiaylin:如果启动多个 worker , crontab 会重复执行多次
      • focusOn:怎么动态改变循环时间的配置
      • focusOn:我看你这样也不能动态改变配置每一小时检查一下任务的需求啊?

      本文标题:FLask Celery定时任务

      本文链接:https://www.haomeiwen.com/subject/bkslcttx.html