Coldfusion应用多实例同步应用变量



我正在使用运行CF10双实例的共享服务器。我的应用程序将一些函数存储在应用程序变量中,当函数更新时,两个实例同时刷新是非常重要的。

问题是:当OnApplicationStart()函数运行时,两个实例都得到更新吗?这将是确保实例间适当的代码同步的唯一方法。

我没能找到任何参考,似乎从服务器得到模棱两可的结果。

每个ColdFusion实例可以包含多个应用程序。每个应用程序可以包含多个应用程序和会话变量。

相同的代码库可以在多个实例上运行,甚至可以在同一个实例上运行多个单独的应用程序。

当您重新启动Instance1时,只有该实例上的应用程序将拾取与应用程序或会话变量相关的任何代码更改。因此,您必须重新启动同一服务器上的所有实例才能获取这些更改。

如果您需要一个值可以被同一物理服务器上的多个应用程序跨所有实例访问,那么请考虑在SERVER作用域中创建一个变量。

如果您设置了像<cfset server.foo = "hello"这样的变量,那么跨同一物理(或虚拟)服务器的任何实例中的任何应用程序都可以访问该变量。这将避免重新启动所有实例。只需更新函数,然后运行一次性脚本重置变量。

在ColdFusion 9中,您可以选择在Application.cfc的onServerStart()方法中定义这个变量。这将确保它在整个服务器重新启动时可用。