• django-celery


    在settings.py里installed_apps里添加 djcelery

    需安装django-celery

    在settings末端添加

    import djcelery
    djcelery.setup_loader()
    
    BROKER_URL = 'amqp://guest:guest@localhost:5672//'
    CELERY_RESULT_BACKEND = 'amqp://guest:guest@localhost:5672//'
    
    
    CELERY_TASK_SERIALIZER = 'json'
    CELERY_RESULT_SERIALIZER = 'json'
    CELERY_ACCEPT_CONTENT = ['json']

    CELERY_IMPORTS = ('hello.tasks', ) CELERY_TIMEZONE = TIME_ZONE CELERYBEAT_SCHEDULER = 'djcelery.schedulers.DatabaseScheduler' CELERY_ALWAYS_EAGER = True

    新建一个app

    里面新建一个tasks.py

    from celery import task
    
    
    @task
    def add(x, y):
        return x+y
    
    
    @task
    def prints():
        print 'xiao'

    需安装

    sudo apt-get install rabbitmq-server

    启动rabbitmq-server

    关闭rabbitmq-server -detached

    查看状态rabbitmqctl status

    运行celery

    python manage.py celery worker --loglevel=info

    或者后台运行celery

    $ nohup django-admin.py celeryd worker -B --loglevel=info --settings=settings --pythonpath=. &

    celery运行定时任务

    python manage.py celery beat

    查看celery是否正常运行

    $ ps aux | grep celery

    关闭celery

    ps auxww | grep 'celery worker' | awk '{print $2}' | xargs kill -9

    进入Django的admin后台,进入Djcelery栏目,一共有四个选项:

    • Crontabs

    在此选项中,可以创建定时执行的任务需要的定时时间。

    • Intervals

    在此选项中,可以创建间隔执行的任务需要时间间隔。

    • Periodic tasks

    在此选项中,创建一个相应的任务,选择任务,需要定时执行的时间或者时间间隔,并保存。

    当然,还有其他一些高级的选项,可以尝试使用。

    • Tasks

    • Workers

    到此,一个任务便创建成功了。不出意外,创建的任务会如期执行,当然,如果创建的没有 如期执行的,应该依次检查前面的步骤,查看celery是否在运行,创建的task是否报错等等, 一级一级排除错误。

  • 相关阅读:
    session
    php增删改查,分页
    sql题
    php简单的数据增删改查
    php简单登录注册验证
    js题
    jQHTML(获取内容和属性)
    jQ效果(动画)
    Codeforces Round #460 (Div. 2): D. Substring(DAG+DP+判环)
    POJ 2891 中国剩余定理(不互素)
  • 原文地址:https://www.cnblogs.com/tuifeideyouran/p/4191511.html
Copyright © 2020-2023  润新知