そのコードがどこにあるか、どのように/いつ実行されるかは言わないので、自信を持って質問に答えることは不可能です.
Application.cfc の onApplicationStart() にある場合は、アプリケーションの起動時にのみ実行されます。
ただし、ファイル内にある場合は、呼び出されないようにするための措置を講じない限り、そのファイルが呼び出されるたびに再実行されます。例: 条件を付けます:
<cfif not (structKeyExists(application, "components") and structKeyExists(application.components, "blog"))>
<cfset application.components.blog = createObject('component','sharedcomponents.cfc.blog').init()>
</cfif>
変数の割り当てにより、ファイルが再実行された場合にCFが再実行しないことを自動的に認識するアプリケーションスコープに何かが設定されるため、魔法が発生するかどうか疑問に思われるようです。いいえ、CF は指示されたことを実行するだけです。つまり、そのコードを実行するように指示すると、CF は実行されます。変数が割り当てられているスコープに関係なく。
ファイルが更新されたかどうかの検出について質問し、それに応じてアプリケーション全体を再起動します。これらのファイルはどのように更新されていますか? それはアクティブな展開プロセスの一部であると思います(例:それらを展開するために何かをします)。この場合、アプリケーションの再起動が必要な時期を知るのに最適な立場にいるのではないでしょうか? 1 つには、すべてのコード変更がアプリケーションの再起動を保証するわけではないので、自動的に再起動する必要はないのではないでしょうか?
applicationStop()
アプリを再起動する必要がある場合に実行するスクリプトが必要です。onRequestStart()
URL パラメーターをチェックして、それが渡された場合に呼び出す人もいますapplicationStop()
が、個人的にはそれを行う場所は間違っていると思います。ほとんどすべてのリクエストでは、その条件は無関係であるため、100 万分の 1 の機会に実際に関連するすべてのリクエストをチェックする意味はありません。私はそれを行うための別のスクリプトを用意することを好みます。これは必要に応じて呼び出されます。