私は CF9 アプリケーションに取り組んでおり、時々必要となるプロセスがあります。applicationStop()
この機能についての私の理解では、アプリがシャットダウンされ、次のリクエストでアプリが再起動されるということです。
これを使用して、アプリケーション スコープの変数とサード パーティのものをリロードしていますが、関数の処理が完了onApplicationStart()
する前に関数が呼び出されているように見えます。onApplicationEnd()
これが機能の意図された機能であるかどうか、誰でも確認できますapplicationStop()
か? それが私に引き起こしている問題は、onApplicationEnd()
で再初期化したいいくつかのアプリケーションスコープのものをリセットしていますが、終了onApplicationStart()
するまで待たないとonApplicationEnd()
一貫性のない状態になることです。
編集 もともと、問題は、onApplicationEnd() がまだ実行されている間に onApplicationStart() が呼び出されることが予想される動作であるかどうかに関するものでした。それを確認するために、onApplicationEnd() でロックを使用して問題を修正するつもりでした。リロードを終了しました。
ただし、ロックを追加しました。
lock scope="application" type="exlusive" timeout="5" {
そして、ブロック全体を無視しているように見えます-コード(ロギングを含む)は実行されず、例外はスローされません(実行前にロックがタイムアウトした場合、例外がスローされますか?)。これは、onApplicationEnd()?