私はソケットインターフェイス経由で時計を確立してから、変更を購読しています。ソケットインターフェイスを使用してオーバーフロー警告を送信し続ける
各受信PDUについて、マップに「警告」キーがある場合は、ドキュメントに示されているように、コンソール/ユーザーに警告を出力します。
しかし、オーバーフローが発生すると、「警告」キーが1回だけ表示されないように見えますが、着信するPDUには同じ警告(「再クロックが1回発生しました」)が繰り返し表示されます(AFAICT? )、私は同じエラーメッセージでコンソールをスパムすることになります。
私にとっては、ウォッチマンがオーバーフローイベントごとに1回のみ警告キーを送信した方が望ましいでしょう。それ以外の場合は、コンソールにスパムを掛けるのを避けるため、「ユーザーに既に表示されている警告」をキャッシュする必要があります。
To resolve, please review the information on
https://facebook.github.io/watchman/docs/troubleshooting.html#recrawl
To clear this warning, run:
`watchman watch-del ... ; watchman watch-project ...`
しかし、私はキャンセルし、私のサブスクリプションを再サブスクライブすることなく、警告をリセットする方法を持っていることを好むだろう:
また、一般的にはオーバーフロー挙動に関して、警告は述べています。例えば。今すぐ私は私のプログラムをkillし、watchman watch-del
コマンドを実行してからプログラムを再起動する必要があります。
私は内部的に自動化することができます。私のプログラムで「オーバーフローが発生しました」という警告メッセージが検出され、サブスクリプションを終了し、watch-del
を発行してから、watch
を再発行してください。
しかし、私はソケットインターフェイス経由で警告をリセットすることもできますが、この内部ではwatch-del
を実行しても、警告がリセットされる必要があるのはなぜですか?理論的には、ウォッチマンが既に再クロールを行っていて、ユーザーにコンソールにログオンしてその旨を伝えましたが、今は問題ありませんか?最初にwatch-del
+ re- watch
が必要なのはなぜですか?
など。オーバーフローが絶えず起こっていない限り、再クロールを行う警備員のように見える(ファイルシステムと同期して戻ってくる)+警報PDUを発行するとすべてが正常に戻ってしまうはずで、ユーザプログラムは理想的には、 /単純で、同じ/既存のサブスクリプションでポストオーバーフロー/ポスト再クロールPDUを取得し続けるだけです。
感謝します、ありがとう!FWIW、私は、単に粘着性の警告をリセットするコマンドを持っていることは素晴らしいと思います。それから、私は 'watch-del'を使わずにソケットインタフェース経由で(現在のサブスクリプションを無効にすると仮定して)それをリセットすることができます。 (設定をチェックすることも意味があります;私のプログラムは起動時にそれを行い、ユーザが明示的にチェックをスキップしない限り、限界があまりにも低い/デフォルトであれば終了します)。 –