美文网首页
django-celery部署

django-celery部署

作者: Irlans | 来源:发表于2018-05-11 17:25 被阅读0次

    Django的setting中添加

    djcelery.setup_loader()
    BROKER_URL = 'redis://127.0.0.1:6379/0'
    BROKER_TRANSPORT = 'redis'
    CELERY_IMPORTS = ('register.task')
    
    当djcelery.setup_loader()运行时,
    Celery便会去查看INSTALLD_APPS下包含的所有app目录中的tasks.py文件,找到标记为task的方法,
    将它们注册为celery task。BROKER_URL和CELERY_RESULT_BACKEND分别指代你的
    Broker的代理地址以及Backend(result store)数据存储地址。在Django中如果
    没有设置backend,会使用其默认的后台数据库用来存储数据。
    注意,此处backend的设置是通过关键字CELERY_RESULT_BACKEND来配置,
    与一般的.py文件中实现celery的backend设置方式有所不同。
    一般的.py中是直接通过设置backend关键字来配置
    

    setting同级celery文件创建

    from __future__ import absolute_import
    import os
    from celery import Celery
    # set the default Django settings module for the 'celery' program.
    os.environ.setdefault('DJANGO_SETTINGS_MODULE', 'test_celery.settings')
    
    from django.conf import settings  # noqa
    
    app = Celery('test_celery')
    
    # Using a string here means the worker will not have to
    # pickle the object when using Windows.
    app.config_from_object('django.conf:settings')
    app.autodiscover_tasks(lambda: settings.INSTALLED_APPS)
    

    supervisord配置

    [program:celeryd]
    command=/home/irlans/venv3.5/bin/python manage.py celery worker -l info 
    stdout_logfile=/home/irlans/celery.log
    stderr_logfile=/home/irlans/celery_err.log
    autostart=true
    autorestart=true
    startsecs=10
    stopwaitsecs=600
    

    相关文章

      网友评论

          本文标题:django-celery部署

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