2

起動時に、実行中のデーモンのテーブルに情報を書き込む一連の Ruby デーモンがあります。デーモンは永久に、またはシグナルを受信するまで実行されます。シグナル ハンドラーは、データベース内のデーモンのレコードを削除します。正常に動作するRuby 2.0より前。2.0以降、エラーが発生しますlock': can't be called from trap context (ThreadError)調査によると、競合やデッドロック状態を引き起こす可能性があるため、Ruby はシグナル ハンドラーでこれ (およびログ記録) を許可していません。けっこうだ。しかし、私がやろうとしていることは合理的であるようです。それで、これを行う正しい方法は何ですか?フラグを設定してポーリングするのは本当に醜いようです。きっともっと良い方法があります。

4

0 に答える 0