如何在开发中运行Rails多线程?

时间:2017-07-25 18:29:22

标签: ruby-on-rails multithreading ruby-on-rails-4

我正在开展多个项目,有时会互相交流,而且我遇到了app的问题

  1. A调用B(request 1,仍在运行)
  2. B调用A(request 2
  3. 根据request 2的结果,B回应请求1
  4. 这需要我在开发模式下运行多线程轨道。

    我知道我可以用puma或类似的东西设置它但是......难道真的有一种更简单的方法吗?

    我想避免更改项目中的任何内容(添加gems,配置文件..)。

    rails s --multi这样的东西会很好,可以webrick只运行多个线程或产生更多进程吗?

    我可以安装一个独立的宝石来做我需要的东西并运行像thin run . -p 3这样的东西吗?

3 个答案:

答案 0 :(得分:2)

解决此问题的一种方法是使用POW,默认使用两个工作程序。

好消息是我不必修改项目文件就可以满足我的要求。

答案 1 :(得分:1)

puma Web服务器可以提供多线程和绑定到单个本地地址的多个工作线程。

答案 2 :(得分:0)

我目前的解决方案,即超级克隆,是使用Foreman和Procfile在不同的端口上运行我的应用程序的两个副本。您必须配置B服务以向辅助端口发出请求。