7
私はwebappにSinatraを使用しています。私は私のアプリがシャットダウンされているときに実行したいクリーンアップコードをいくつか持っています。 Sinatraにこれのフックがあるのですか、別のメカニズムを使用する必要がありますか?私はアプリケーションがシャットダウンしたときに実行したいコードをSinatraに入れますか?
私はwebappにSinatraを使用しています。私は私のアプリがシャットダウンされているときに実行したいクリーンアップコードをいくつか持っています。 Sinatraにこれのフックがあるのですか、別のメカニズムを使用する必要がありますか?私はアプリケーションがシャットダウンしたときに実行したいコードをSinatraに入れますか?
Kernel#at_exitを参照してください。主なアプリファイルのどこかのブロックを定義すると、Sinatraアプリでは機能しない理由がわかりません。
更新: mattのコメントによると、Sinatraを要求する前にat_exit
ハンドラを定義する必要があります。
私は、すべてのスレッドが終了してから呼び出されるという印象を受けました。私は自分自身でそれを試しに行きます。私がする必要がある特定のものの1つは、いくつかのスレッドをシャットダウンすることです。その場合、それは私にとってはうまくいかないでしょう。 – pquimo
Sinatraの起動方法によっては、Sinatraが 'at_exit'自身を使用しているので、これはうまくいかないかもしれません(https://github.com/sinatra/sinatra/blob/v1.3.2/lib/sinatra/main.rb#L25 )あなたが追加する 'at_exit'ハンドラは、実際に起動してからSinatraが起動します。 – matt
興味深い。私は私の答えを削除するか、当分の間それを保つべきかどうか疑問に思います。多分@pquimoが報告するまで待つつもりです。 –