用過才知道真的那么好系列(四)——Django后臺中使用Celery計劃任務(wù)

這是Celery系列的最后一篇。
在Django中怎么用Celery呢滥酥?當(dāng)然第三篇中是一種方法更舞,那種方法自由度很大,也很有用坎吻。不過缆蝉,既然Django的Admin如此好用,我們有沒有什么方式將Admin與Celery結(jié)合起來呢,下面就來介紹django-celery插件刊头。


1.安裝django-celery

django-celery是一個已經(jīng)寫好的Django App插件黍瞧,我們使用pip方式安裝。

$ sudo pip install django-celery

2.配置settings.py

添加配置至settings.py:

#使用的為上一篇的demo project
INSTALLED_APPS = (
    'django.contrib.admin',
    'django.contrib.auth',
    'django.contrib.contenttypes',
    'django.contrib.sessions',
    'django.contrib.messages',
    'django.contrib.staticfiles',
    'home',#上一篇自己的應(yīng)用
    'djcelery',#加上這個東西原杂,不要問我為什么
)
...
#末尾添加數(shù)據(jù)庫調(diào)度
CELERYBEAT_SCHEDULER = 'djcelery.schedulers.DatabaseScheduler'

3.數(shù)據(jù)庫

同步數(shù)據(jù)庫印颤,命令行輸入:

$ python manage.py migrate

運行后,我們可以看到類似如下圖:

選區(qū)_005.png

以為在數(shù)據(jù)庫中添加相關(guān)djcelery的表污尉。

4.初始命令

現(xiàn)在我們打開命令行窗口:

給大家介紹一款好用的終端
我工作中使用的終端為Terminator(終結(jié)者)膀哲,哇往产,一聽名字就碉堡了被碗。
它可以隨意分割窗口,比ubuntu自帶的終端好用多了仿村。就像這樣:

Terminator.png

有了Terminator之后锐朴,媽媽再也不用擔(dān)心我因手速不夠快而浪費大把時間了。

  • 在一個終端中重啟Celery命令:
$ celery -A demo worker -l debug
  • 打開另一個終端窗口蔼囊,輸入命令:
$ celery -A demo beat -l debug --max-interval=10 #每十秒掃瞄任務(wù)
2016-04-26 20:48:43屏幕截圖.png

上面命令意為每10秒鐘掃描djcelery任務(wù)焚志,不過現(xiàn)在我們還沒有定義任何定時任務(wù),請看第5步畏鼓。

5.配置Admin后臺

因為要用到Admin后臺酱酬,我們必須新建超級用戶:

$ python manage.py createsuperuser 

然后按照提示一步步進行輸入。

打開第三個終端云矫,重啟項目:

$ python manage.py runserver

進入后臺:127.0.0.1:8000/admin/

會看到Djcelery應(yīng)用下有如圖下五項:

選區(qū)_006.png

怎樣配置:

  • 定時膳沽。進入Crontabs頁面,這個和Linux的Crontab命令類似让禀,如不熟悉可自行g(shù)oogle(因為我也不怎么用)挑社。點擊Add crontab按鈕后輸入**14 * * * ***保存(每到十四分鐘時執(zhí)行任務(wù))。
  • 配置任務(wù)巡揍。進入Periodic tasks周期性任務(wù)選項痛阻。點擊Add Periodic tasks按鈕。添加配置如下圖:

選區(qū)_007.png

解釋:我們設(shè)置了一個名為Hello的任務(wù)腮敌。任務(wù)內(nèi)容為home.tasks.hello_world,也就是我們上一節(jié)中寫的那個阱当。選擇周期為我們第一步定義好的**14 * * * ***。當(dāng)然你也可以配置一下Interval糜工。

6.查看結(jié)果

待到每個小時的14分鐘弊添,你便可以看到Celery的后臺執(zhí)行了hello_world函數(shù)(打印了hello world)。不過這個Crontab定得太特殊了啤斗。我們可以再寫一個類似***/5 * * * ***,每5分鐘執(zhí)行...

7.總結(jié):

Celery還有很多不錯的功能表箭,官方教程是個不錯的地方。有人說全是英語看不懂啊,其實就我來看免钻,英文教程不必每個單詞都懂彼水,因為一般教程都會有代碼演示的,你可以先瀏覽一邊英文极舔,再看代碼凤覆,回過頭來就能知道大致意思了。Celery介紹到此結(jié)束拆魏,拜拜...

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
  • 序言:七十年代末盯桦,一起剝皮案震驚了整個濱河市,隨后出現(xiàn)的幾起案子渤刃,更是在濱河造成了極大的恐慌拥峦,老刑警劉巖,帶你破解...
    沈念sama閱讀 218,858評論 6 508
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件卖子,死亡現(xiàn)場離奇詭異略号,居然都是意外死亡,警方通過查閱死者的電腦和手機洋闽,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 93,372評論 3 395
  • 文/潘曉璐 我一進店門玄柠,熙熙樓的掌柜王于貴愁眉苦臉地迎上來,“玉大人诫舅,你說我怎么就攤上這事羽利。” “怎么了刊懈?”我有些...
    開封第一講書人閱讀 165,282評論 0 356
  • 文/不壞的土叔 我叫張陵这弧,是天一觀的道長。 經(jīng)常有香客問我俏讹,道長当宴,這世上最難降的妖魔是什么? 我笑而不...
    開封第一講書人閱讀 58,842評論 1 295
  • 正文 為了忘掉前任泽疆,我火速辦了婚禮户矢,結(jié)果婚禮上,老公的妹妹穿的比我還像新娘殉疼。我一直安慰自己梯浪,他們只是感情好,可當(dāng)我...
    茶點故事閱讀 67,857評論 6 392
  • 文/花漫 我一把揭開白布瓢娜。 她就那樣靜靜地躺著挂洛,像睡著了一般。 火紅的嫁衣襯著肌膚如雪眠砾。 梳的紋絲不亂的頭發(fā)上虏劲,一...
    開封第一講書人閱讀 51,679評論 1 305
  • 那天,我揣著相機與錄音,去河邊找鬼柒巫。 笑死励堡,一個胖子當(dāng)著我的面吹牛,可吹牛的內(nèi)容都是我干的堡掏。 我是一名探鬼主播应结,決...
    沈念sama閱讀 40,406評論 3 418
  • 文/蒼蘭香墨 我猛地睜開眼,長吁一口氣:“原來是場噩夢啊……” “哼泉唁!你這毒婦竟也來了鹅龄?” 一聲冷哼從身側(cè)響起,我...
    開封第一講書人閱讀 39,311評論 0 276
  • 序言:老撾萬榮一對情侶失蹤亭畜,失蹤者是張志新(化名)和其女友劉穎扮休,沒想到半個月后,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體贱案,經(jīng)...
    沈念sama閱讀 45,767評論 1 315
  • 正文 獨居荒郊野嶺守林人離奇死亡肛炮,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點故事閱讀 37,945評論 3 336
  • 正文 我和宋清朗相戀三年止吐,在試婚紗的時候發(fā)現(xiàn)自己被綠了宝踪。 大學(xué)時的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片。...
    茶點故事閱讀 40,090評論 1 350
  • 序言:一個原本活蹦亂跳的男人離奇死亡碍扔,死狀恐怖瘩燥,靈堂內(nèi)的尸體忽然破棺而出,到底是詐尸還是另有隱情不同,我是刑警寧澤厉膀,帶...
    沈念sama閱讀 35,785評論 5 346
  • 正文 年R本政府宣布,位于F島的核電站二拐,受9級特大地震影響服鹅,放射性物質(zhì)發(fā)生泄漏。R本人自食惡果不足惜百新,卻給世界環(huán)境...
    茶點故事閱讀 41,420評論 3 331
  • 文/蒙蒙 一企软、第九天 我趴在偏房一處隱蔽的房頂上張望。 院中可真熱鬧饭望,春花似錦仗哨、人聲如沸。這莊子的主人今日做“春日...
    開封第一講書人閱讀 31,988評論 0 22
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽。三九已至斟珊,卻和暖如春苇倡,著一層夾襖步出監(jiān)牢的瞬間,已是汗流浹背。 一陣腳步聲響...
    開封第一講書人閱讀 33,101評論 1 271
  • 我被黑心中介騙來泰國打工旨椒, 沒想到剛下飛機就差點兒被人妖公主榨干…… 1. 我叫王不留胜嗓,地道東北人。 一個月前我還...
    沈念sama閱讀 48,298評論 3 372
  • 正文 我出身青樓钩乍,卻偏偏與公主長得像辞州,于是被迫代替她去往敵國和親。 傳聞我的和親對象是個殘疾皇子寥粹,可洞房花燭夜當(dāng)晚...
    茶點故事閱讀 45,033評論 2 355

推薦閱讀更多精彩內(nèi)容