网站首页Python相关

djcelery添加定时任务

发布时间:2017-04-11编辑:fc不将就阅读(1555

    django-celery使用请看django-celery


    接着上一篇文章修改django项目文件后,介绍celery的定时任务。

    首先在文件celerytest/settings中添加:

    CELERYBEAT_SCHEDULER = 'djcelery.schedulers.DatabaseScheduler'  # 存储在django数据库中

    然后生成数据库文件并启动:

    #生成数据库文件
    python manage.py migrate
    #启动
    python manage.py runserver
    #启动celery
    python manage.py  celery worker --beat --loglevel=info

    访问页面127.0.0.1:8000/admin,可以看到多了djcelery的部分内容:

    djcelery.png

    Crontabs:执行的定时规则,支持crontab的格式定时执行;

    Intervals:执行的定时规则,固定时间间隔执行(如每5秒执行);

    Periodic tasks:指定task定时执行的规则(包括task和定时规则);

    另外2个没用到不介绍。

    添加一个intervals(每5秒执行一次):

    blob.png

    添加一个Periodic tasks(每5秒执行一次cpu_msg这个task):

    blob.png

    其中arguments和executionoptions是输入的参数,如果task没有输入参数则空白,如果task需要入参以json格式输入。

    这个规则表示每5秒执行一次cpu_msg这个task。

    保存后会celery会自己扫描添加的任务并执行。


    验证:

    在第一步的目录下运行celery flower(**表示省略) 

    $ pwd
    ****/celerytest/
    $ python manage.py celery flower
    *****
    [I 170418 10:58:02 command:136] Visit me at http://localhost:5555
    [I 170418 10:58:02 command:141] Broker: redis://localhost:6379/1

    web界面打开http://localhost:5555/tasks

    可以看到运行过的task的具体信息,如下图所示基本为每5秒执行一次:

    blob.png

  • 2017年4月14日 17:46 - fangc|回复

    填坑试试