看板 Python 關於我們 聯絡資訊
各位大家好 是這樣子的 我目前用的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