為什麼這篇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
標題 [問題] 溫泉旅館的兒童人頭算法?
--
※ 發信站: 批踢踢實業坊(ptt.cc), 來自: 140.138.150.24
※ 文章網址: https://www.ptt.cc/bbs/Python/M.1433754819.A.405.html
請問這樣還有救嗎?
我自己看過去的感覺如下(還沒有詳細讀熟) 有錯幫忙糾正
我們目前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]
請問我這樣想是正確的嗎= =?
但是怕server不穩 還是退回到1.4
今天不用實作request queue or response queue 在django上的原因
是因為apache這種正規的server
會自動幫處理同時多個request或回覆多個response
當流量超過上限時自動放入queue裡面
只是今天入藥結合apache跟django 就必須透過WSGI幫忙 是吧?
已經有成功把django架到apache上了
(我是用進入到apache\bin的資料夾下 執行httpd -k install)
我是先用win8 +apache2.4來測試 但是還有一些沒辦法適應
像是在跑runserver的時候 可以透過cmd的方式去看到每一筆request到server上的訊息
但是轉到apache上的時候 卻沒有這些的資訊可以看 有點煩惱
(還是我用的版本太新 用2.2就行了?)
==============================================================================
話說 我移到apache後 我後台的管理介面就跑掉了
http://i.imgur.com/A2N4280.png
![](https://cache.ptt.cc/c/https/i.imgur.com/A2N4280l.png?e=1724437313&s=IX91Y9boaKXzUJJ8iN4Jmw)
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',
)
我不知道哪邊需要修改....冏
※ 編輯: aiweisen (140.138.150.24), 06/15/2015 21:26:29