运行ColdBox 4.2后,我们会看到这个错误,但只在一个特定的处理程序cfc上。如果我们再恢复几次,它最终会消失,这听起来像是一种比赛条件。
我们考虑直接执行extends="coldbox.system.EventHandler",而不是让框架混合到处理程序方法中,但随后我们开始看到另一个错误:
错误构建: myApp.handlers.admin.report,->,init函数的控制器参数是必需的,但是没有被传入。带有构造函数参数:{}
同样地,如果我们再恢复几次,这个错误就会消失,直到我们得到一个东西在完成烘焙之前,请求在init中间到达。
我们无法在非驱动系统上复制这一结果,这可能是由于负载低得多。
有没有人遇到过类似的事情,并想出了一种在负载下优雅地恢复框架的方法?
发布于 2017-05-10 19:53:29
实际上,我成功地在恢复过程中合理地可靠地再现了竞赛条件错误,并将其作为一个问题冷藏箱-307发布,几乎可以说,在生产过程中不要使用fwreinit --这是正确的--我们转而使用我们自己的方法在application.cfc中调用applicationStop,它修复了我们在使用fwreinit时看到的问题。
在使用applicationStop时要注意的一点是,它不是线程安全(可能不是正确的术语),这意味着的应用范围--所有当前正在运行的请求--在被调用时都会拜拜,因此您可能会在以这种方式重新处理时出现一些奇怪的错误。
https://stackoverflow.com/questions/43896783
复制相似问题