私はSIGINTを捕まえる方法を知っていますが、私は自分のコードにブロックをどこかにランダムに入れる方法しか知りません。私はSIGINTを捕まえることができる必要があります。なぜなら、ファイルの書き込みが進行中(私のデータベースが頻繁にファイルに書き込む)、ファイルを破壊するからです。これを処理する理想的な方法は何ですか?Ruby - ファイル書き込みの終了を許可するSIGINT
は編集
一例では、私はSIGINTを検出した場合、私の書き込み機能を実行することで、これを取り扱うが、私はへの書き込みの途中で文字通りだ場合、私は助けにはなりませんこれを実現していますマーシャルを使用するファイル。
RubyにSIGINTをキャッチして、それが無視されるようにする方法はありませんか?
だけの可能な答えを考え出した2
ネヴァーマインド編集、...以下を参照してください。
あなたは[ 'Signal'](httpsでそれをキャッチしようとしたことがあり/ruby-doc.org/core-2.3.1/Signal.html)?これを使用してシャットダウンフラグをトリガーします。 – tadman
私は過去に 'trap'を使っていましたが、ちょっと読んだだけです - あなたは割り込みを救うことについて話していますか?私がそれをした場合、ファイル書き込み部分の周りにレスキューステートメントを置くだけですか? – Max
例外を生成する前に信号をインターセプトする必要があります。 – tadman