2009-08-03 112 views
0

我正在用mod_python運行Python服務器,並且遇到了一些配置變量的問題。這實際上是兩個問題集於一身,因爲我覺得他們是高度相關:如何設置mod_python配置變量?

  1. 我需要一種方法來配置變量將在Python可運行一段時間。我現在只是有一個模塊,它設置了一些名稱 - 值對,我將其導入到其他模塊中,但我最近在PythonOption上閱讀並想知道使用該模塊會帶來什麼好處。

  2. 我需要一種方法來在服務器上存儲狀態。我有權限訪問限制爲每天運行X次的API,一旦達到此限制,我需要恢復到我的(較小)代碼。我想知道如何跟蹤我一天運行查詢的次數。

我想過使用一個文件或數據庫中,但我怕我會減慢具有每個人都試圖訪問同一文件或行一次請求。有沒有更好的方式在mod_python中進行設置?

+0

爲什麼mod_python?爲什麼不是mod_wsgi?爲什麼沒有框架?爲什麼不使用Django或Pylons或TurboGears? – 2009-08-03 23:26:26

回答

0
  1. 我需要一種方法來配置變量將在Python可運行一段時間。

    做什麼Django做。使用Python賦值語句的簡單可導入腳本。

  2. 我需要一種方法來在服務器上存儲狀態。

    做什麼Django做。使用SQLite3。

此外,閱讀PEP 333和構建應用程序的組件,以支持WSGI。這應該是一個相對較小的修訂版,可以使現有代碼具有正確的WSGI結構。

當你從mod_python切換到mod_wsgi時,你可以找到許多組件來爲你做這些事情,並減少你寫的代碼量。

1
  1. 使用PythonOption可讓您配置可能需要更改服務器之間的內容。不過,我不會使用它太多,因爲搞亂Apache配置指令是一種痛苦(再加上它需要重新加載服務器)。您可能會考慮類似使用PythonOption來指定包含實際配置變量的設置文件的名稱。 (或者你可以在設置文件的標準位置查找,就像大多數框架一樣)

  2. 如果你真的不想考慮文件或數據庫,請嘗試memcached。它基本上是一個非常簡單的數據庫(只能通過密鑰獲取,設置和清除),它完全存儲在RAM中,因此速度非常快。但是,如果你需要存儲的只是一個計數器變量,那麼你可以將它作爲一個全局變量粘貼到一個Python模塊中,除非你擔心計數器在重新加載時被重置。