1. 程式人生 > >python+django+djcelery 入門級踩坑

python+django+djcelery 入門級踩坑

開始:

  1. 首先安裝django-celery,使用Redis作為Broker還需要安裝celery-with-redis:
    pip install django-celery
    pip install celery-with-redis
    
    sudo apt-get install redis-server
    如果沒有redis-server則不能開啟redis預設的6379埠, 在後續的執行定時任務時, 會報錯 beat: connection error...
    
    


  2. setting.py配置
    import djcelery
    djcelery.setup_loader()    #載入djcelery
    BROKER_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 所在的終端裡.