前幾天在自己寫的郵件項(xiàng)目中遇到這樣一個(gè)問題:比如當(dāng)我要點(diǎn)擊“發(fā)送驗(yàn)證信息到我的郵件”按鈕后,因發(fā)送郵件會(huì)占用網(wǎng)絡(luò)I/O,在發(fā)送郵件和成功跳轉(zhuǎn)頁面之間會(huì)有短暫的等待。雖然說等待時(shí)間不長(zhǎng),但也難免令人感覺不爽。隨后便想到使用異步隊(duì)列任務(wù)來處理這個(gè)問題。所以今天來給介紹一下異步隊(duì)列任務(wù)神奇-----Celery
以下代碼均在Ubuntu下運(yùn)行通過,如果真不行的話,來打我啊啊~~
Celery英文原意為芹菜的意思,使用Python編寫。不知開發(fā)者為何給她起這個(gè)名字。如果讓我來起,我愿賜給她一個(gè)叫做“Cane(甘蔗)”的名字。因?yàn)樗钱惒疥?duì)列嘛,像甘蔗一節(jié)一節(jié)的,更有隊(duì)列的感覺,不是嗎?
扯遠(yuǎn)了...
下面介紹使用Celery所需要的組件(Ubuntu環(huán)境):
1.Celery是必須的:
sudo pip install celery
2.安裝Broker服務(wù)(中間人服務(wù)):
我將Redis作為Broker服務(wù)。貌似Celery官方更建議在項(xiàng)目中使用RabbitMQ作為消息隊(duì)列服務(wù)器。不管了,我說用Redis就用Redis。
3.還要安裝Celery與Redis的連接插件:celery-with-redis:
sudo pip install celery-with-redis
安裝完以上環(huán)境后,必須開啟Broker服務(wù)。默認(rèn)安裝完Redis后便已開啟了Redis的服務(wù),不過你還是可以用命令行是一下。
- 啟動(dòng)Redis
$ redis-server
之后便彈出一大串英文:注意中間的說明,如下:

Redis 2.8.4 (00000000/0) 32 bit ##Redis的版本號(hào)
Running in stand alone mode ##運(yùn)行在獨(dú)立模式下
Port: 6379 ##端口號(hào)6379
PID: 5463 ###進(jìn)程號(hào)5463
還有最后的一段文字:
[5463] 17 Apr 20:47:27.753 * The server is now ready to accept connections on port 6379
意思是Redis服務(wù)已經(jīng)在6379端口上準(zhǔn)備好了,待您開搞!
- 如果還不確定Redis是否啟動(dòng),則可在終端命令行輸入以下命令
$ redis-cli
127.0.0.1:6379>ping
PONG
表示成功安裝并啟用。
上面均為前戲,接下來才是真正認(rèn)識(shí)Celery。請(qǐng)看用過才知道真的那么好系列(二)