我遇到了一个从我的Play全局对象中获取控制器的并发问题。
环境:
我同时发送两个请求,并注意到有时请求最终得到错误的控制器 例如:
请求X获得控制器X
请求X得到控制器X
请求X获取Controller X
请求Y获取Controller Y //新请求获取其控制器
请求X得到控制器Y //新的x请求得到y的控制器不应该发生。
请求Y得到控制器Y
请求Y得到控制器Y
每个请求都有一个不同的调度程序线程。
这是一个重现问题的github应用https://github.com/SaadKhawaja/play2-concurrency-test。
请阅读自述文件,其中包含重现问题的步骤。
感谢任何帮助。
由于
答案 0 :(得分:1)
问题是你的行动是单身,但需要原型作用。 Play将控制器注入到每个请求的操作中,因此单例操作将导致并发问题。