共享數據最好存儲在數據庫中。
如果您想爲每個用戶的會話設置一個全局變量,那麼您希望將這些數據與會話數據一起存儲:這裏是details for web.py和for flask。
如果你有一個持續的進程正在處理一個隊列,你可以看看用FastCGI運行你的服務器,你的python服務器可以在你的web服務器的一個獨立實例中運行。看看如何配置FastCGI for web.py - 看看是否合適。 Web服務器將通過它自己的端口與Python服務器通信,因此您的Python服務器可以繼續運行並維護任何全局數據。
[編輯]
既然你需要共享的變量 - 你可以檢查出flask.g的瓶,或web.ctx爲web.py.我從來沒有使用它們 - 所以我不知道是否有惡意影響或性能問題。我看到an example here這表明在web.py做這樣的事情:
import web
def add_global_hook():
g = web.storage({"counter": 0})
def _wrapper(handler):
web.ctx.globals = g
return handler()
return _wrapper
class Hello:
def GET(self):
web.ctx.globals.counter += 1
return "<h1>Counter: %d</h1>" % web.ctx.globals.counter
if __name__ == '__main__':
urls = ("/", "Hello")
app = web.application(urls, globals())
app.add_processor(add_global_hook())
app.run()
當你使用燒瓶你禁用腳本對文件的更改自動重裝?我想這是你的問題。 – Bastian
是的,我做了,但腳本正在導入自己創建線程來處理請求。 – Pankaj