我正在燒瓶,python,sqlalchemy和postgresql上開發web應用程序。 我的問題是關於這個應用程序中的併發處理。基於python的web應用程序中的併發處理
我該如何編寫應用程序:
我以在數據庫中添加用戶爲例。我發佈表單並調用一個視圖。我處理所有表單數據,然後調用add_user(* arg),它使用sqlalchemy代碼在數據庫中插入用戶,並在成功執行時返回並返回視圖中的響應。
我以爲是什麼:
好了,現在我認爲我的Web服務器(我還沒有決定),要麼產生一個線程,或者如果兩個用戶試圖在同一時間註冊和將處理過程所有的concurreny要求。
- 是否需要在此處編寫線程代碼?通過線程代碼我的意思是,在寫入之前,我獲得一個鎖並在寫入釋放之後。
- 我對網絡開發和多線程/多處理編程非常新穎,並希望瞭解如何編寫能夠很好地處理併發的web應用程序。
- 從start開始編寫併發處理是正確的,或者當大量的併發用戶使用webapp時,這個想法應該會出現。即使如果它應該在以後做,我想要一些關於它的指針。
基本上我不知道web應用程序開發的併發部分。如果你能指出資源,那麼我可以從中瞭解更多關於它的信息,這將非常有幫助。
在http://code.google.com/p/modwsgi/wiki/ProcessesAndThreading中解釋mod_wsgi會發生什麼 – 2012-03-02 01:15:16
@ jd通過在請求之間共享狀態,你的意思是什麼?我將當前用戶的sqlalchemy對象保留在用戶會話中,並在下次請求時將其與當前sqlalchemy會話再次合併。它是共享狀態嗎? – codecool 2012-03-02 16:06:38
如何將SQLAlchemy對象*保存在*會話中?我們在討論什麼樣的會議?一個簽名的cookie? 如果你的會話是一個簽名的cookie,並且需要引用一個數據庫對象,那麼它應該可能存儲該對象的ID,並根據需要從DB中檢索對象。 – 2012-03-02 16:32:49