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后台添加新任务
新创建的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,但是重启程序,执行时间,又会恢复程序里的默认时间。
网友评论