dcp*_*er7 6 ruby-on-rails freeze puma server ruby-on-rails-5
当一次从我的单独前端应用程序向 Rails API 发送多个请求时,我使用 Puma 开发的 Rails 5 服务器一直冻结并挂起。没有错误,它只是挂在 POST 请求上。当我尝试使用 CTRL + C 终止服务器时,没有任何反应。我必须手动终止该端口。
我尝试在development.rb中设置config.eager_load=true。我尝试在 application.rb 中添加 config.allow_concurrency 。我不停地用谷歌搜索毫无结果。我从前端同时发送大约 5 个请求,所以我相信是这么多请求造成的,但我不确定。
有其他人经历过这种情况或者知道这里需要做什么吗?我通常可以让所有请求成功返回前端大约 3-4 次,然后服务器就会冻结。
尤其是在服务器运行时更改项目中任何文件中的任何一行代码后,尤其会发生这种情况。
已经过去近两年了,但我终于偶然发现了导致我的问题的原因。
基本上它归结为我的代码中的一个方法不是线程安全的。由于我的current_user变量只能从我的控制器访问,因此我在基本控制器上有一个 before_action 来分配当前用户,User.current以便我可以通过 全局访问当前用户User.current,而不仅仅是在我的控制器中。
因此,请确保您没有像我这样在控制器中动态更新类。它不是线程安全的。对于我的特殊情况,我最终遵循了这个线程安全的解决方案:/sf/answers/175941951/
| 归档时间: |
|
| 查看次数: |
1362 次 |
| 最近记录: |