django+celery+redis框架搭建

redis架構(gòu)圖

第1步:安裝celery與redis

警告:在pip install celery后執(zhí)行 celery -A 你的項(xiàng)目名 worker --pool=solo -l info 報(bào)下圖一錯(cuò)誤浅蚪,建議執(zhí)行 pip install --upgrade https://github.com/celery/celery/tarball/master 執(zhí)行完后再次執(zhí)行 celery -A 你的項(xiàng)目名 worker --pool=solo -l info 就會(huì)出現(xiàn)圖二樣式

圖一.png

圖二.png

Mac OS X 安裝
$ brew install Redis    # Redis 安裝,需提前安裝 brew
$ pip install celery    # pip 安裝celery庫(kù)
$ pip install redis     # pip 安裝 redis庫(kù)

如果您沒(méi)有安裝 brew,建議您先安裝 brew 參考 brew安裝

Ubuntu 安裝

安裝 redis庫(kù)

$ sudo apt install redis    # Redis 安裝
$ pip install celery        # pip 安裝celery庫(kù)
$ pip install redis         # pip [安裝 redis庫(kù)](https://www.cnblogs.com/zuidongfeng/p/8032505.html)

Linux 安裝

請(qǐng)?jiān)L問(wèn) redis 下載 最新的安裝包摔握,本文使用的是在書寫本文這個(gè)時(shí)間時(shí)最新的安裝包箩退,如官方發(fā)布更新囱持,恕本文不另行通知更改履婉。

$ wget http://download.redis.io/releases/redis-4.0.9.tar.gz
$ tar xzf redis-4.0.9.tar.gz
$ cd redis-4.0.9
$ make
# make完后 redis-4.0.9 目錄下會(huì)出現(xiàn)編譯后的redis服務(wù)程序redis-server,還有用于測(cè)試的客戶端程序redis-cli,兩個(gè)程序位于安裝目錄 src 目錄下:
# 下面啟動(dòng)redis服務(wù).
$ cd src
$ ./redis-server

Windows 安裝 參考菜鳥教程-Redis 安裝

下載地址:https://github.com/MSOpenTech/redis/releases蚀腿。

Redis 支持 32 位和 64 位程癌。這個(gè)需要根據(jù)你系統(tǒng)平臺(tái)的實(shí)際情況選擇舷嗡,這里我們下載 Redis-x64-xxx.zip壓縮包到 C 盤,解壓后嵌莉,將文件夾重新命名為 redis进萄。

img

打開一個(gè) cmd 窗口 使用cd命令切換目錄到 C:\redis 運(yùn)行 redis-server.exe redis.windows.conf

如果想方便的話,可以把 redis 的路徑加到系統(tǒng)的環(huán)境變量里垮斯,這樣就省得再輸路徑了郎仆,后面的那個(gè) redis.windows.conf 可以省略,如果省略兜蠕,會(huì)啟用默認(rèn)的扰肌。輸入之后,會(huì)顯示如下界面:

第2步:編寫代碼

1在settings.py中加入

CELERY_BROKER_URL = 'redis://localhost'

#: Only add pickle to this list if your broker is secured
#: from unwanted access (see userguide/security.html)
CELERY_ACCEPT_CONTENT = ['json']
CELERY_RESULT_BACKEND = 'redis://localhost'
CELERY_TASK_SERIALIZER = 'json'
image.png

2編寫任務(wù):

import time
from celery import Celery
app = Celery('tasks', broker='redis://localhost', backend='redis://localhost')

@app.task
def add(x, y):
    time.sleep(15)   #使用sleep表示耗時(shí)操作
    print(2)
    return x+y
image.png

3在視圖中調(diào)用tasks

from django.http import HttpResponse
from .tasks import add, add2
def testCelery(request):
    print(add.delay(4, 4))
    print(add2.delay(5, 4))
    print('成功')
    return HttpResponse('成功')
image.png

4在url中注冊(cè)接口

from django.contrib import admin
from django.urls import path
from testCelery.views import testCelery

urlpatterns = [
    path('admin/', admin.site.urls),
    path('testCelery/', testCelery)
]

第3步:?jiǎn)?dòng)redis熊杨、celery曙旭、django

1:?jiǎn)?dòng)redis
切換到redis安裝目錄下執(zhí)行:redis-server.exe redis.windows.conf

image.png

2:?jiǎn)?dòng)celery
執(zhí)行celery -A untitled1 worker --pool=solo -l info
3:?jiǎn)?dòng)django

第4步:調(diào)用接口

只耗時(shí)56ms,


image.png

celery任務(wù)耗時(shí)16秒,從而實(shí)現(xiàn)異步


image.png

源碼
優(yōu)質(zhì)博客1
優(yōu)質(zhì)博客2

第5步:實(shí)現(xiàn)flower 對(duì)celery進(jìn)行監(jiān)控

1: 安裝
pip install flower
2:啟動(dòng)flower
假設(shè)在server2上啟動(dòng)flower晶府,flower默認(rèn)的端口是5555.
celery flower -A 項(xiàng)目名字 --address=服務(wù)器ip --port=5555
3:監(jiān)控界面

在瀏覽器上輸入 http://server2_ip:5555, 可以看到如下界面:

image.png

************************----------------------分割線---------------------*********************

centos Redis配置

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
  • 序言:七十年代末桂躏,一起剝皮案震驚了整個(gè)濱河市,隨后出現(xiàn)的幾起案子川陆,更是在濱河造成了極大的恐慌剂习,老刑警劉巖,帶你破解...
    沈念sama閱讀 218,284評(píng)論 6 506
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件较沪,死亡現(xiàn)場(chǎng)離奇詭異鳞绕,居然都是意外死亡,警方通過(guò)查閱死者的電腦和手機(jī)尸曼,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 93,115評(píng)論 3 395
  • 文/潘曉璐 我一進(jìn)店門们何,熙熙樓的掌柜王于貴愁眉苦臉地迎上來(lái),“玉大人控轿,你說(shuō)我怎么就攤上這事冤竹。” “怎么了茬射?”我有些...
    開封第一講書人閱讀 164,614評(píng)論 0 354
  • 文/不壞的土叔 我叫張陵鹦蠕,是天一觀的道長(zhǎng)。 經(jīng)常有香客問(wèn)我躲株,道長(zhǎng)片部,這世上最難降的妖魔是什么? 我笑而不...
    開封第一講書人閱讀 58,671評(píng)論 1 293
  • 正文 為了忘掉前任霜定,我火速辦了婚禮档悠,結(jié)果婚禮上,老公的妹妹穿的比我還像新娘望浩。我一直安慰自己辖所,他們只是感情好,可當(dāng)我...
    茶點(diǎn)故事閱讀 67,699評(píng)論 6 392
  • 文/花漫 我一把揭開白布磨德。 她就那樣靜靜地躺著缘回,像睡著了一般吆视。 火紅的嫁衣襯著肌膚如雪。 梳的紋絲不亂的頭發(fā)上酥宴,一...
    開封第一講書人閱讀 51,562評(píng)論 1 305
  • 那天啦吧,我揣著相機(jī)與錄音,去河邊找鬼拙寡。 笑死授滓,一個(gè)胖子當(dāng)著我的面吹牛,可吹牛的內(nèi)容都是我干的肆糕。 我是一名探鬼主播般堆,決...
    沈念sama閱讀 40,309評(píng)論 3 418
  • 文/蒼蘭香墨 我猛地睜開眼,長(zhǎng)吁一口氣:“原來(lái)是場(chǎng)噩夢(mèng)啊……” “哼诚啃!你這毒婦竟也來(lái)了淮摔?” 一聲冷哼從身側(cè)響起,我...
    開封第一講書人閱讀 39,223評(píng)論 0 276
  • 序言:老撾萬(wàn)榮一對(duì)情侶失蹤始赎,失蹤者是張志新(化名)和其女友劉穎和橙,沒(méi)想到半個(gè)月后,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體极阅,經(jīng)...
    沈念sama閱讀 45,668評(píng)論 1 314
  • 正文 獨(dú)居荒郊野嶺守林人離奇死亡胃碾,尸身上長(zhǎng)有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點(diǎn)故事閱讀 37,859評(píng)論 3 336
  • 正文 我和宋清朗相戀三年,在試婚紗的時(shí)候發(fā)現(xiàn)自己被綠了筋搏。 大學(xué)時(shí)的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片。...
    茶點(diǎn)故事閱讀 39,981評(píng)論 1 348
  • 序言:一個(gè)原本活蹦亂跳的男人離奇死亡厕隧,死狀恐怖奔脐,靈堂內(nèi)的尸體忽然破棺而出,到底是詐尸還是另有隱情吁讨,我是刑警寧澤髓迎,帶...
    沈念sama閱讀 35,705評(píng)論 5 347
  • 正文 年R本政府宣布,位于F島的核電站建丧,受9級(jí)特大地震影響排龄,放射性物質(zhì)發(fā)生泄漏。R本人自食惡果不足惜翎朱,卻給世界環(huán)境...
    茶點(diǎn)故事閱讀 41,310評(píng)論 3 330
  • 文/蒙蒙 一橄维、第九天 我趴在偏房一處隱蔽的房頂上張望。 院中可真熱鬧拴曲,春花似錦争舞、人聲如沸。這莊子的主人今日做“春日...
    開封第一講書人閱讀 31,904評(píng)論 0 22
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽(yáng)店溢。三九已至,卻和暖如春委乌,著一層夾襖步出監(jiān)牢的瞬間床牧,已是汗流浹背。 一陣腳步聲響...
    開封第一講書人閱讀 33,023評(píng)論 1 270
  • 我被黑心中介騙來(lái)泰國(guó)打工遭贸, 沒(méi)想到剛下飛機(jī)就差點(diǎn)兒被人妖公主榨干…… 1. 我叫王不留戈咳,地道東北人。 一個(gè)月前我還...
    沈念sama閱讀 48,146評(píng)論 3 370
  • 正文 我出身青樓革砸,卻偏偏與公主長(zhǎng)得像除秀,于是被迫代替她去往敵國(guó)和親。 傳聞我的和親對(duì)象是個(gè)殘疾皇子算利,可洞房花燭夜當(dāng)晚...
    茶點(diǎn)故事閱讀 44,933評(píng)論 2 355