在我的基於web的應用程序中,我決定使用Cherrypy 3.2作爲http框架。CherryPy,SQLAlchemy核心線程安全性?
我使用cherrypy.Application
類來創建WSGI兼容appliaction對象,該對象通過Apache2與mod_wsgi一起提供。
此外,我只使用SQLalchemy 0.7.3(不是ORM)的核心組件。有一些cherrypy工具可用於每個請求的正確會話綁定(如SATools)。但是SQLalchemy的Session對象是ORM的一部分,而不是核心。
所以我開始考慮如何製作類似的工具,但沒有會話。
的SQLAlchemy的文檔說:
對於使用os.fork系統調用, 或例如Python的多處理模塊,它通常是 要求一個單獨的發動機中使用的多個進程的應用程序爲每個子進程。
那麼如何正確地爲每個櫻桃線創建一個引擎?注意這些線程是由apache2(可能)創建的。
謝謝!
編輯:這也許是重要的,那WSGI應用程序在後臺模式下的Apache2
您確定嗎?我正在測試它,我認爲應用程序對象實際上是在線程中共享的。 – JoshuaBoshi
我編輯了這個問題,添加了wsgi app在守護進程模式下使用的信息(在這種情況下可能很重要) – JoshuaBoshi
進程與線程不同。我專注於引用的文字,其中討論os.fork。這意味着它正在談論進程而不是線程。因此,我認爲你相信你每個線程都有一個困惑,因此我不能根據引用的部分看到你需要。 –