Spree在多线程服务器上运行会有问题吗?

时间:2016-10-25 18:20:14

标签: ruby-on-rails multithreading postgresql spree puma

我在Puma上运行了一个Rails应用程序(3个工作程序,每个0-16个程序)。

最近,我遇到了一些问题,订单是用空的购物车完成的,以及没有发货的订单,或是同一物品的莫名其妙的多次发货...

我已经进行了几天的测试和测试,但是我无法从日志中找出任何可疑的内容,也无法重现这些问题。

所以我只是想知道这是否有可能是线程不安全的代码(我自己的,或者Spree的,或者某些宝石的代码)做出意想不到的事情的症状,例如,发现多个请求在同一个Puma进程的不同线程上运行。

有没有人碰到类似的东西?我对可能发生的事情的假设/理论是否有意义?

如果这可能是根本原因,那么将Puma线程数设置为1可以完全解决它吗?

谢谢!

1 个答案:

答案 0 :(得分:1)

快速更新。

我一直在我的生产服务器上运行3个工人的Puma,每个工作1个线程,大约1个月。

之前没有出现任何症状,所以我认为这个问题实际上是由于某些线程不安全的代码所致。

以防万一有人在将来偶然发现这件事......