2009-08-03 5 views
0

私はmod_pythonでPythonサーバーを稼働しています。構成変数に関していくつか問題があります。mod_python設定変数を設定するには?

  1. は、私が実行している間はPythonで利用できるようになります変数を設定する方法が必要です:私は、彼らは非常に関連していると思うので、これは実際には二つの質問は、一つにロールバックされます。私は現在、他のモジュールにインポートするいくつかの名前と値のペアを設定するモジュールを持っていますが、私は最近PythonOptionを読んでいましたが、その代わりにどのような利点が得られるのか不思議でした。

  2. サーバーに状態を格納する方法が必要です。私は1日にX回数を実行することに限定されたAPIにアクセスできます。そして、その制限に達すると、私の(より小さな)コードに戻す必要があります。私は1日に何回クエリを実行したのかをどのように把握できるのだろうかと思っています。

私は、ファイルやデータベースを使用して考えたが、私は誰もが一度に同じファイルまたは行にアクセスしようとしたことにより、リクエストが遅くなります怖いです。 mod_pythonでこれを設定するより良い方法はありますか? PythonOption使用

+0

なぜmod_pythonですか? mod_wsgiはなぜですか?なぜフレームワークはありませんか? DjangoやPylons、TurboGearsを使わないのはなぜですか? –

+1

これは「あなたがあなたのサーバー設定全体を変更するまであなたの質問に答えないでしょう」というものですか? –

+0

@Daniel Lew:私はあなたの状況を理解できるように質問しています。あなたは使いにくい技術をいくつか選んでいます。あなたが記述した問題は、Django、Pylons、TurboGearsで解決されました(完全に解決されました)。私がコメントする前に、あなたが知られている、働く解決策を使用していない理由を知りたい。 –

答えて

0
  1. 私は、実行中にPythonで利用できるようになります変数を設定する方法が必要です。

    Djangoは何をしますか。 Pythonの代入文の簡単なインポート可能なスクリプトを使用してください。

  2. サーバーに状態を格納する方法が必要です。

    Djangoは何をしますか。 SQLite3を使用します。

さらに、PEP 333を読んで、WSGIをサポートするアプリケーションコンポーネントを構成します。これは、既存のコードに適切なWSGI構造を持たせるために、比較的小さなリビジョンにする必要があります。

mod_pythonからmod_wsgiに切り替えると、あなたのためにこれらのことを行い、記述したコードの量を減らすための多くのコンポーネントが見つかります。

1
  1. は、サーバーへのサーバーから変更する必要がありますものを設定できます。しかし、Apacheの設定ディレクティブを乱用すると(サーバーを再ロードする必要があります)痛みを感じるので、あまり使用しません。 PythonOptionを使用して、実際の構成変数を含む設定ファイルの名前を指定するようなことが考えられます。 (あるいは、ほとんどのフレームワークのように、設定ファイルの標準的な場所を調べることができます)

  2. 実際にファイルやデータベースを考慮したくない場合は、memcachedを試してみてください。これは基本的に非常に単純なデータベース(取得、設定、およびキーのみでクリア)で、RAMに完全に格納されているため、非常に高速です。ただし、格納する必要があるのはカウンタ変数だけですが、モジュールがリロードされたときにカウンタがリセットされることを心配している場合を除いて、グローバル変数としてPythonモジュールにスティックすることができます。