python+django+djcelery 入门级踩坑

来源:互联网 发布:淘宝店铺行业排名下跌 编辑:程序博客网 时间:2024/06/10 20:08

开始:

  1. 首先安装django-celery,使用Redis作为Broker还需要安装celery-with-redis:
    pip install django-celerypip install celery-with-redissudo apt-get install redis-server如果没有redis-server则不能开启redis默认的6379端口, 在后续的执行定时任务时, 会报错 beat: connection error...


  2. setting.py配置
    import djcelerydjcelery.setup_loader()    #加载djceleryBROKER_URL = 'redis://localhost:6379/0'    #Broker使用Redis, 使用0数据库(暂时不是很清楚原理)CELERYBEAT_SCHEDULER = 'djcelery.schedulers.DatabaseScheduler'    #Backend数据库INSTALLED_APPS = (...'djcelery' #注册下载的django-celery)
  3. 在django app下建立tasks.py

    from celery import task@task(name=’appname.tasks.func_name’)    #appname为当前app注册的名字def func_name():    print ‘测试成功’

  4. 在登录djngo后台admin/, 为periodic task 增加定时任务.


  5. 启动程序
    python manage.py runserver

  6. 启动celery woker, 用来查看输入日志.
    python manage.py celery worker -l info
    在新打开的终端执行命令.

  7. 启动心跳执行定时任务.
    python manage.py celery beat
    在另一个新打开的终端中执行命令, 如果任务顺利执行, print '测试成功' 将会显示在 woker 所在的终端里.