我有一个Symfony应用程序,它填充了一个门户应用程序的“小部件”,我注意到了一些(似乎)奇怪的事情。门户应用程序具有调用Symfony应用程序的iframe。在每个调用中,都会在查询字符串上传递一个随机用户键。Symfony应用程序使用
myUser->setAttribute()
. 如果传入值与会话中的值不同,它将覆盖会话值。
在伪代码中(为了清晰起见,应用同步特性,即使它可能不存在):
# Widget request arrives with ?foo=bar
if the user attribute 'foo' does not equal 'bar'
overwrite the user attribute 'foo' with 'bar'
end
我注意到的是,在一个有多个小部件的门户页面上(读:多个请求或多或少同时进入),其中的值需要被覆盖,
每个请求都试图覆盖
. 这是时间问题吗?当我查看日志打印时,我希望到达的第一个请求将被覆盖,随后的请求将看到它们接收到的用户属性与初始请求刚刚放入缓存的内容相匹配。
谢谢。