美文网首页
Django-celery-rabbitmq(一)

Django-celery-rabbitmq(一)

作者: 技术创造未来 | 来源:发表于2018-09-14 18:35 被阅读0次

    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,但是重启程序,执行时间,又会恢复程序里的默认时间。

    相关文章

      网友评论

          本文标题:Django-celery-rabbitmq(一)

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