Django-celery-rabbitmq(一)

Django-celery-rabbitmq部署流程:

Django端:

1、config.py文件

加入一句话:连接rabbitmq

BROKER_URL ='amqp://guest:guest@localhost:5672//'

2、setting.py文件:

2.1

INSTALLED_APPS = [

    'djcelery'

]

⚠️django数据库中djcelery表设置所显示的时间,即使USE_TZ=True,显示时间也是TIME_ZONE时区的时间。

2.2加上这句话,就可以在django 数据哭后台,添加时间队列任务。

CELERY_QUEUES = (

Queue('flash_sale_change_state', Exchange('flash_sale_change_state'),routing_key='flash_sale_change_state'),

)

队列名字

2.3

CELERY_ROUTES = (

'flashsale.tasks.flash_sale_change_state': {'queue':'flash_sale_change_state',

'routing_key':'flash_sale_change_state'},

)

添加队列路由。

2.4编辑时间:

CELERYBEAT_SCHEDULE = {

'flash_sale_change_state': {

"task":"flashsale.tasks.flash_sale_change_state",

"schedule": crontab(minute='*/1'),

"args": (),

},

}


tasks.py文件:

from center.celeryimport app

@app.task

def flash_sale_change_state():

    -----------------

二、Django后台添加新任务


Django-celery-rabbitmq(一)_第1张图片
新创建的tasks,需要在django后台添加新任务

新创建的tasks,需要在django后台添加新任务,并允许下面步骤调试。

三、启动django项目

python      manage.py    runserver

celery操作:

⚠️每一个都要重启队列,加载到内存,才能起作用。

启动Celery Worker来开始监听并执行任务

python center/manage.py celery -A center worker --loglevel=info

#启动任务,beat心跳,这里的celerybeat-schedule指定一个记录文件**启动beat服务也行

python center/manage.py celery -A center beat -s celerybeat-schedule

结束语:登录django后台,rabbitmq后台查看时间队列。

⚠️修改程序需要,重启celery。修改crontab时间可以在数据库后台修改,不需要重启celery,但是重启程序,执行时间,又会恢复程序里的默认时间。

你可能感兴趣的:(Django-celery-rabbitmq(一))