我正在使用运行CF10双实例的共享服务器。我的应用程序将一些函数存储在应用程序变量中,并且在更新函数的同一时刻刷新两个实例非常重要。
问题是:当运行OnApplicationStart()函数时,两个实例是否都会更新?这是确保跨实例进行正确代码同步的唯一方法。
我找不到任何对此的引用,似乎从服务器上得到了模棱两可的结果。
感谢您的任何共享知识。
答案 0 :(得分:1)
每个ColdFusion实例可以包含多个应用程序。 每个应用程序都可以包含多个应用程序和会话变量。
可以在多个实例上运行相同的代码库,即使是同一实例上的多个单独的应用程序也是如此。
重新启动Instance1时,只有该实例上的应用程序才会获取与应用程序或会话变量相关的任何代码更改。因此,您必须重新启动同一服务器上的所有实例才能获取这些更改。
如果您需要在同一物理服务器上的多个应用程序可以跨所有实例访问值,请考虑在SERVER
范围内创建变量。
如果设置类似此<cfset server.foo = "hello"
的变量,那么跨同一物理(或虚拟)服务器的任何实例中的任何应用程序都可以访问该变量。这样可以避免重新启动所有实例。只需更新该函数,然后运行一次性脚本即可重置变量。
从ColdFusion 9开始,您可以选择在Application.cfc的onServerStart()
方法中定义此变量。这将确保在重新启动整个服务器时它可用。