ruby-on-rails - 从 Rails 应用程序运行 node.js 代码

标签 ruby-on-rails node.js

我正在尝试将一些 node.js 代码与我的 Rails 应用程序集成。基本上它是一个 js 文件,其中包含一些进程将在后台运行的代码。

我遵循了以下步骤:

  • 在一些 test_node.js 文件中的 Rails 应用程序的根目录中添加了代码。
  • 现在我要做的是使用 ruby​​ 的 exec 函数向我的系统传递一个值,例如 exec "node test_node.js"。
  • 这工作得很好,但它阻止了我的服务器处理任何请求。
  • 为了将它传递到后台,我尝试使用 nohup 例如:exec "nohup node test_node.js"。
  • 当我运行这段代码时,我的服务器崩溃了。

我是 Rails 开发人员,从未开发过 Node 应用程序,所以不知道我是否采用了正确的方法。

最佳答案

exec 用一个新进程替换当前运行的进程。因此,要在后台运行某些东西,您应该在子进程中forkexec

fork { exec('node', 'test_node.js', ...) }
不需要

nohup

另见 Ruby, Difference between exec, system and %x() or Backticks

关于ruby-on-rails - 从 Rails 应用程序运行 node.js 代码,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/29984305/

相关文章:

ruby-on-rails - 在 rails 3.2 + 设计 2.0 之后设计列confirmed_at 不再更新

node.js - module.exports TypeError 并且没有方法

node.js - npm:找出哪些依赖项使用给定的包(间接)

javascript - Okta 是否使用 Passport.js?

node.js - 如何使用 nodejs + pg 进行区分大小写的查询

ruby-on-rails - 使用 ActiveRecord::Relation 对象

ruby-on-rails - 为什么在 Heroku 上运行的应用程序不受 Heroku SSL 保护

ruby-on-rails - 无法连接到 Heroku 上的数据库

ruby-on-rails - ruby rails : Find all departmentid from Users Table

node.js - Node 除了 Web 开发之外还有其他用途吗?