0

私は、daemon.py と呼ばれる python スクリプトから開始するプログラムを持っています。このデーモン スクリプトは、プログラムの実行中ずっと生きている 4 つのスレッドを開始します。

初期デーモン プログラムを他のスレッドのウォッチドッグとして使用したいと考えています。私は、各スレッドが sqlite データベースで独自の時間を持ち、デーモンがそれをカウントダウンすると考えています。独自のタイマーをリセットするスレッドジョブです。いずれかのタイマーが 0 になると、デーモンはすべてを再起動します。

これはこれを行う良い方法ですか?そうでない場合、どうすればいいですか?

4

1 に答える 1

1

あなたのアプローチは高レベルで有効に見えますが、4 つのスレッドの機能に関する詳細がなければ、確実に言うのは困難です。メイン スレッドは、スレッドのインスタンス変数を変更することにより、4 つのスレッドにガイダンスを提供できます。データベースを通信メカニズムとして使用する必要はありません。Python には、この問題の多くを解決できる便利なスレッド機能がいくつかあります。

また、スレッドがタイムアウトするか、しばらくしてから再作成されるようにしたいようです。これを達成するために、4 つのスレッドのそれぞれにインスタンス変数をリセットさせるlast_activeことができ、メイン スレッドはその情報を使用して、それに応じてスレッドに作用することができます。Python で任意のスレッドを強制終了する簡単な方法はありません。私の好ましいアプローチは次のようなものです:

def run():
    while not self.kill_requested:
        ...
于 2012-06-13T04:27:15.803 に答える