python-django-celery的安裝和配置_20191122


celery的介紹

 

celery有三個核心的概念:

  • 任務的發出者(需要發郵件的一方),我們項目的代碼就相當於發出者,
  • 中間是一個任務隊列(中間人broker),這里我們使用Redis來承擔任務隊列的作用
  • 任務的處理者(就是幫助發郵件的這就是worker),

 

邏輯:

  • 首先任務發出者,發出任務之后,不能直接告訴任務的處理者,要先到任務隊列,
  • 任務的處理者會監聽任務隊列,有的話就執行,
  • celery本身是沒有提供任務隊列的功能的,需要借助一個rabbitMQ數據庫,或者Redis,都是可以作為中間人的,這里我們使用Redis來承擔任務隊列的作用,
  • 這樣的設計就不會阻塞了,

安裝celery,

  • pip install celery
  • 安裝redis:pip install redis  驗證redis是否安裝成功,在cmd窗口輸入python命令之后再輸入import redis,如果沒有出現模塊不存在則表示安裝成功。

怎么使用celery?

  • 在項目目錄下新建一個包,celery_tasks,新建一個文件,tasks.py,,
  • 我的處理者是在虛擬機的Linux上面,
  • 在這個地方啟動任務,還需要把項目代碼也放到上面去,
  • 並且需要在虛擬機上也要安裝celery,然后才能啟動,
  • 1,workon lq_py3(虛擬環境名稱)這就是進入虛擬環境工作了,
  • 2,pip freeze,查看虛擬環境下面安裝了那些包
  • 3,pip install celery,安裝celery
  • 安裝django1.11     pip install django==1.11.7 -i http://pypi.douban.com/simple --trusted-host pypi.douban.com
  • 啟動命令,在進入項目里面,cd ~/桌面/dailyfresh/
  • 然后執行:celery -A celery_tasks.tasks worker -l info

 ##################################

報錯信息:Error: Unable to load celery application.

第一步:檢查redis有沒有啟動:

sudo redis-server /etc/redis/redis.conf,啟動服務,

 ps aux | grep redis,查看是否服務啟動

redis-cli -h 192.168.100.128,啟動客戶端,

AUTH ### 設置密碼,

現在報了另一個錯誤了:ImportError: No module named 'django_redis'

第二步:安裝

進入虛擬環境,workon lq_py3

pip install django-redis

pip freeze ,查看是否安裝了,

安裝好了,再次執行:celery -A celery_tasks.tasks worker -l info

報錯了:ERROR/MainProcess] consumer: Cannot connect to redis://:**@192.168.80.129:6379/8: Error 111 connecting to 192.168.80.129:6379. Connection refused.

需要修改一下redis的配置,

第三步,修改celery的配置信息,

在task里面,ip錯誤了,還是因為虛擬機的ip變動的問題,


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM