本文記錄django中如何使用celery完成異步任務。
在成都網(wǎng)站制作、做網(wǎng)站中從網(wǎng)站色彩、結(jié)構(gòu)布局、欄目設置、關(guān)鍵詞群組等細微處著手,突出企業(yè)的產(chǎn)品/服務/品牌,幫助企業(yè)鎖定精準用戶,提高在線咨詢和轉(zhuǎn)化,使成都網(wǎng)站營銷成為有效果、有回報的無錫營銷推廣。創(chuàng)新互聯(lián)建站專業(yè)成都網(wǎng)站建設10余年了,客戶滿意度97.8%,歡迎成都創(chuàng)新互聯(lián)客戶聯(lián)系。Celery 是一個簡單、靈活且可靠的,處理大量消息的分布式系統(tǒng),并且提供維護這樣一個系統(tǒng)的必需工具。
它是一個專注于實時處理的任務隊列,同時也支持任務調(diào)度。
官方網(wǎng)站
中文文檔
示例一:用戶發(fā)起request,并等待response返回。在本些views中,可能需要執(zhí)行一段耗時的程序,那么用戶就會等待很長時間,造成不好的用戶體驗
示例二:網(wǎng)站每小時需要同步一次天氣預報信息,但是http是請求觸發(fā)的,難道要一小時請求一次嗎?
使用celery后,情況就不一樣了
示例一的解決:將耗時的程序放到celery中執(zhí)行
示例二的解決:使用celery定時執(zhí)行
名詞
任務task:就是一個Python函數(shù)
隊列queue:將需要執(zhí)行的任務加入到隊列中
工人worker:在一個新進程中,負責執(zhí)行隊列中的任務
代理人broker:負責調(diào)度,在布置環(huán)境中使用redis
本示例在ubuntu系統(tǒng)中,使用django1.8.2,并且要安裝redis
1,首先需要安裝擴展包。
pip install celery==3.1.25 pip install celery-with-redis==3.0 pip install django-celery==3.1.17
另外有需要云服務器可以了解下創(chuàng)新互聯(lián)scvps.cn,海內(nèi)外云服務器15元起步,三天無理由+7*72小時售后在線,公司持有idc許可證,提供“云服務器、裸金屬服務器、高防服務器、香港服務器、美國服務器、虛擬主機、免備案服務器”等云主機租用服務以及企業(yè)上云的綜合解決方案,具有“安全穩(wěn)定、簡單易用、服務可用性高、性價比高”等特點與優(yōu)勢,專為企業(yè)上云打造定制,能夠滿足用戶豐富、多元化的應用場景需求。