1.1 celery應⽤舉例
1.2 celery有以下優點
1.3 celery 特性
2.1 celery 扮演⽣產者和消費者的角色
2.2 產生任務的方式
2.3 celery 依賴三個庫: 這三個庫, 都由 celery 的開發者開發和維護.
推薦版本
django == 2.2.6django-celery == 3.3.1
django-redis == 4.11.0
redis == 2.10.6
celery == 3.1.26.post2
#settings.py
import djcelery
djcelery.setup_loader(
)broker_url =
'redis:'[.
.."djcelery",.
..]
python manage.py migrate
#如若不成功可以嘗試⼀下命令語句
# request.add_query_param('signname', "天天**")
# request.add_query_param('templatecode', "sms_185212884")
# request.add_query_param('templateparam', data)
# response1 = client.do_action(request)
# # python2: print(response)
# res = json.loads(str(response1, encoding='utf-8'))
time.sleep(5)
return5+
10
c、⼀次需要注意 在impprt task時, 需要保持⼀致
)#先獲取redis ⾥的圖⽚驗證碼來⽐對
redis_cli = get_redis_connection(
"img_code"
) redis_img_code = redis_cli.get(image_code_uuid)
.decode(
)print
(redis_img_code)
print
(image_code)
if image_code.lower(
)!= redis_img_code.lower():
return response(
)# 傳送簡訊
num = random.randint(
100000
,999999
)print
(num)
send_data =
send_sms.delay(phone,send_data)
# pipeline管道:作⽤就是把多個命令放在⼀起來執⾏
pl = redis_cli.pipeline(
) pl.setex(phone,60*
5,num)
pl.delete(image_code_uuid)
pl.execute(
)return response(
)
python manage.py celery worker -
-loglevel=info
如果報錯不讓超級管理員來啟動,在settings.py加⼊以下配置
from celery import celery, platforms
platforms.c_force_root =
true
django celery 任務訊息佇列
描述 為提高 效能,很多耗時,但不影響頁面正常的操作,可丟給訊息佇列非同步執行 比如sns 的 新鮮事兒 系統,我發帖之後,會給所有關注我的人推送一條通知。乍一看沒什麼難的,發帖之後找出關注我的人,然後生成相應的訊息記錄就行了。但問題是,100個人關注我,就要執行100條insert查詢,更要命的是...
Django Celery定時任務
celery是由python開發的乙個簡單 靈活 可靠的處理大量任務的分發系統,它不僅支援實時處理也支援任務排程。pip3 install django celery beat pip3 install redis 寫入配置 celery broker url redis 密碼 127.0.0.1 ...
Django celery非同步傳送郵件
使用基於django搭建的後端框架,並使用celery進行非同步傳送郵件。1.setting.py檔案中配置 配置郵件伺服器 指定郵件後端 email backend django.core.mail.backends.smtp.emailbackend 發郵件主機 email host smtp....