锁定指向对象实例的ColdFusion应用程序变量

时间:2014-03-27 17:33:17

标签: cookies coldfusion locking scope

我在CF 9上运行我的应用程序。我创建了一个CFC来集中我的cookie处理而不是散布的所有标签。很简单。它有两个属性(名称,值),并有5个方法(setCookie,deleteCookie,verifyCookie,clearAllCookies和init)。

由于我希望这个方法在整个应用程序中可用,我将此代码放在application.cfc文件的onApplicationStart方法中:

application.oCookie = createObject("com.mycookie").init();

当我需要在任何代码文件中设置cookie时,我只是这样称呼它:

application.oCookie.name="testCookieName";
application.oCookie.value="testCookieValue";
application.oCookie.setCookie();

我的问题是:每次执行此操作时,是否需要锁定此代码?如果两个单独的用户在同一时刻访问此代码的页面上,我最终会设置混合cookie值吗?

1 个答案:

答案 0 :(得分:5)

要使oCookie线程安全,它必须是一个单独的(没有状态),只能作为<cfcookie>cookie范围的薄层。 / p>

因此,您应该设计com.mycookie,以便接受application.oCookie.setCookie(name, value)。并确保您对所有内容进行了变更,并且不会在variables mycookie范围内存储任何内容。

我认为你不需要使用cflock。

如果您还没有,可能需要结帐WireBox