• 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是否报错等等, 一级一级排除错误。

  • 相关阅读:
    [Git]08 如何自动补全命令
    [Git]06 如何提交空目录
    [Git]05 如何使用分支
    [Git]04 如何使用标签
    [Git]03 如何查看提交历史
    29、前端知识点--sessioncookie oken
    28、前端知识点--跨域问题
    26、前端知识点--利用webpack搭建脚手架一套完整流程
    25、前端知识点--webpack篇之面试考点
    24、前端知识点--数组的合并
  • 原文地址:https://www.cnblogs.com/tuifeideyouran/p/4191511.html
Copyright © 2020-2023  润新知