ファイルシステムの更新を監視してログに記録するFlaskを使用してアプリケーションを作成しています。私の起動シーケンス(デバッグモード)は次のとおりです。
- Flask アプリケーション オブジェクトの作成
- ウォッチドッグを開始
- アプリケーションを開始する
デバッグ モードで実行すると、アプリケーションは自動的に werkzeug の fsevents リローダーで再起動しますが、これは正常です。ただし、この再起動は最初のウォッチドッグ スレッドを終了しないため、この時点で 2 番目のウォッチドッグ スレッドが存在し、すべてのファイル システム イベントが複製されます。
これは本番環境では発生しませんが、デバッグに影響を与えており、ウォッチドッグの起動に問題があるのではないかと心配しています。ウォッチドッグを正常に終了させるためにやるべきことはありますか、それとも 2 回目の起動を防ぐ方法はありますか?
また、コードの編集によってアプリケーションが再起動した場合、2 番目のウォッチドッグ スレッドが正しく再起動されます。リロード時にシャットダウンしないのは、最初のリロードの前に開始する最初のウォッチドッグだけです。