1

Debian Linux で Django + WSGI + Apache を使用するサーバー用の Python アプリケーションを開発しています。アプリケーションには、Web インターフェイスとコマンド ライン インターフェイスがあります (まだ django モデルを使用しています... ビューとテンプレートを使用していません)。
データベースのバックエンドは SQLite3 です。

このアプリケーションは、いくつかのジョブを定期的に実行する必要もあります。python-gobject と python-glib を使用する UNIX ライクなデーモンを作成し、これらのジョブを次のように実行します。

gobject.timeout_add_seconds(seconds, someCallback...)
gobject.timeout_add_seconds(seconds, someCallback...)
...
gobject.timeout_add_seconds(seconds, someCallback...)

glib.MainLoop().run()

テストしたところ、sqlite db に書き込まれたデータに奇妙な問題がいくつかあります。これは、単一の sqlite db に対して読み書きを行う 2 つの Python インスタンスがあるためだと思います。1 つは apache+wsgi 用で、もう 1 つは自分のデーモン用です。(または、コマンド ライン インターフェイスを使用する場合、イベント 3 の Python インスタンス)

私の質問は、私に何をするように勧めますか? これらの timeout_add と MainLoop を「dj_survey.wsgi」に入れ、Apache の起動時に実行しますか?

4

1 に答える 1

3

いいえ、Apache/WSGI 環境内でバックグラウンド プロセスを実行したくありません。

それらをシェルで開始し、何らかの方法を使用してバックグラウンド プロセスと通信します。

于 2012-02-15T13:13:37.127 に答える