celery(4) celery +django的定时任务

在django中使用计划任务功能

1)安装第三方模块

pip3 install django-celery-beat -i https://pypi.tuna.tsinghua.edu.cn/simple

2)在项目的setting中增加配置

   INSTALLED_APPS = (
        ...,
        'django_celery_beat',
    )

3)定时任务放入数据库中

之前的定时任务,都是存在一个文件里面 就是

celerybeat-schedule

现在不同了跟django结合了,定时任务就得存在数据库中,那创建数据表

[root@linux-node1 RestApi]# python3 manage.py migrate
Operations to perform:
  Apply all migrations: admin, auth, contenttypes, django_celery_beat, rest, sessions
Running migrations:
  Applying django_celery_beat.0001_initial... OK

4)admin后台显示

然后一个一个来加..  。。。。不用做步骤。都会,下一步下一步就行...

Keyword arguments有关键字的写这

Arguments  必须是json格式

然后当你都添加配置完毕后,django只是负责存储任务,但它并不会主动给worker任务.  那你还要启动一个beat,与之前的启动beat不同  。。这次启动的beat是要从django配置的数据库中读取

5)启动beat

 

celery -A RestApi beat -l debug -S django

 

6)观察状态

完美。。。。

总共需要启动3个程序

  1.django程序  python3 manage.py runserver 0.0.0.0:8081

  2.worker进程  celery -A RestApi worker -l debug

  3.beat程序   celery -A RestApi beat -l debug -S django

切记:

  1。需要配置django amdin中配置定时的周期, 也就是那3个表中数据的添加

  2。需要启动你的beat   每添加一个beat,都需要重启beat

 

posted @ 2017-07-15 00:40  所有的梦想都画在墙上  阅读(502)  评论(0)    收藏  举报