[爆卦]celery python教學是什麼?優點缺點精華區懶人包

為什麼這篇celery python教學鄉民發文收入到精華區:因為在celery python教學這個討論話題中,有許多相關的文章在討論,這篇最有參考價值!作者aiweisen (教授...我想畢業)看板Python標題[問題] django reques...


各位大家好

是這樣子的

我目前用的server 環境是 django1.4 + python 2.7

是前人(已畢業學長)所寫的server

那個server只是單純做 上傳 與下載檔案 的功能

現在使用他寫的server 偶爾會發生奇怪的事

就是有時會發生 如果同時有2個client做上傳 或下載檔案的時候 整個server就會卡住

但又有的時候同時上傳跟下載"又"不會發生卡住

後來被老師釘了一下就說 那就是你們畢業的學長當初偷懶

沒有在server上寫request queue跟釋放記憶體的機制



回頭看了看程式碼 裡面的確沒看到有關queue的程式碼

現在我要幫我們學長收拾爛攤子



也就是 如果server同時收到多個request的時候

就先把這些request先queue起來 接著再依序處理queue在裡面的request (呼叫函式)

response也是同樣道理

但是我碰django+python的時間 沒有比碰java來的久

請問有沒什麼推薦的網站 或者是關鍵字符合我的需求 可以讓我拜讀一下


我有google到類似的功能是 Celery 這個套件

請問這個套件 能完成我要的需求嗎?

--
作者 MicroGG (La new總冠軍) 看板 Japan_Travel
標題 [問題] 溫泉旅館的兒童人頭算法?
robler:問問題然後自稱拎背這樣好嗎 有點禮貌ok?04/11 16:32
penan:骨科大 XD04/11 16:34
MicroGG:你不懂,我有苦衷,我不說拎杯會被鄉民罵..04/11 16:36

--
※ 發信站: 批踢踢實業坊(ptt.cc), 來自: 140.138.150.24
※ 文章網址: https://www.ptt.cc/bbs/Python/M.1433754819.A.405.html
uranusjr: 如果前面有用正規的 WSGI server 應該不會發生這種事 06/08 17:40
uranusjr: 他該不會是用 runserver 跑的吧 06/08 17:41
沒錯 我們server是用runserver跑的= =
請問這樣還有救嗎?
MacPerson: 架起來吧..... 06/08 20:37
MacPerson: Django最近出了一本中文教學手冊,買一本吧 06/08 20:59
loner10: 請教MacPerson大..書名是? 06/08 21:18
MacPerson: It's Django--用 Python 迅速打造 Web 應用 06/08 21:27
終於有中文書了 這本書應該有教說架在自己Server上吧?
uranusjr: http://d.pr/1eloK 官方文件就有教了, 你要不要先看看 06/09 00:27
uranusjr: 話說既然是用 runserver 其實你們老師也是不懂嘴砲嘛 06/09 00:28
WSGI看了有點頭暈 不過好像必須要用這種方式才行?
我自己看過去的感覺如下(還沒有詳細讀熟) 有錯幫忙糾正

我們目前server是架在一台6萬多塊的電腦上 使用runserver的方式來執行
有google到說 runserver只是為了測試用

我們django server的app裡面的function都是用下面類似的方式來做httpresponse
def submit(request):
//do something
return HttpResponse('ret=0')

現在要有queue的應用 那就是要用一樓說的 使用正規的WSGI來執行server

也就是要變成 django +wsgi +apache 這樣就不用去管queue的問題

但是如果使用這種方式 原本的httprespone就要全部修改掉 變成類似下面這種

def simple_app(environ, start_response):
setup_testing_defaults(environ)

status = '200 OK'
headers = [('Content-type', 'text/html; charset=utf-8')]

start_response(status, headers)

ret = '<script>alert("hello world")</script>\n'.encode('utf-8')
return [ret]

請問我這樣想是正確的嗎= =?
qas612820704: django1.4耶 現在不都1.8了 06/09 13:46
是阿 我之前為了用google的GCM在django上 有升到1.7
但是怕server不穩 還是退回到1.4
uranusjr: 什麼都不用改, 你把原本的 runserver 停掉, 用我給的連 06/09 17:42
uranusjr: 結接上 web server(例如 Apache + mod_wsgi)就會直接 06/09 17:42
uranusjr: 能動了。文件好好看, 試著照做, 不要亂找資料亂猜。 06/09 17:43
對不起 讓我跳針在問一下
今天不用實作request queue or response queue 在django上的原因
是因為apache這種正規的server
會自動幫處理同時多個request或回覆多個response
當流量超過上限時自動放入queue裡面
只是今天入藥結合apache跟django 就必須透過WSGI幫忙 是吧?
uranusjr: 細節有點不同,但基本上是這樣沒錯 06/10 12:32
謝謝 那我就朝這方面去試
timTan: 用 runserver 架起來的 django 可是弱到爆呢.... 06/10 16:41
哈...也是呢 好險還沒出去工作 不然真的丟臉丟大了(苦笑

已經有成功把django架到apache上了
(我是用進入到apache\bin的資料夾下 執行httpd -k install)

我是先用win8 +apache2.4來測試 但是還有一些沒辦法適應

像是在跑runserver的時候 可以透過cmd的方式去看到每一筆request到server上的訊息

但是轉到apache上的時候 卻沒有這些的資訊可以看 有點煩惱
(還是我用的版本太新 用2.2就行了?)

==============================================================================

話說 我移到apache後 我後台的管理介面就跑掉了

http://i.imgur.com/A2N4280.png

MIDDLEWARE_CLASSES = (
'django.middleware.common.CommonMiddleware',
'django.contrib.sessions.middleware.SessionMiddleware',
#'django.middleware.csrf.CsrfViewMiddleware',
#'django.middleware.csrf.CsrfResponseMiddleware',
'django.contrib.auth.middleware.AuthenticationMiddleware',
'django.contrib.messages.middleware.MessageMiddleware',
# Uncomment the next line for simple clickjacking protection:
# 'django.middleware.clickjacking.XFrameOptionsMiddleware',
)

我不知道哪邊需要修改....冏
uranusjr: 上面那篇文件最下面有個連結寫 How to use Django with 06/11 16:02
uranusjr: Apache and mod_wsgi,你按進去看,裡面就有寫了... 06/11 16:02
抱歉 眼殘了 看到了
※ 編輯: aiweisen (140.138.150.24), 06/15/2015 21:26:29
zz654456: 我的問題跟你好類似 我也是學生 我寄站內信給你你看一下 07/10 16:53

你可能也想看看

搜尋相關網站