gpt4 book ai didi

ruby-on-rails - 在 Heroku 上的同一个应用程序中的 Rails 和 Node?

转载 作者:IT老高 更新时间:2023-10-28 23:11:06 26 4
gpt4 key购买 nike

我正在构建一个通过 CarrierWave 处理文件上传的 Rails 应用程序。目前,较大的文件上传会在很长一段时间内阻塞服务器。我见过像 s3-swf-upload-plugin gem 这样的解决方案,它跳过本地服务器并将文件直接从浏览器发送到 S3,但这需要进行一些修改以预先生成唯一的文件名并将它们与数据库同步。我相信这不会太麻烦,但是 Heroku 的新 Cedar 堆栈让我想到了将这些长时间运行的请求卸载到在同一应用程序中运行的 node.js 实例。我对这类事情不是很有经验,所以如果我的措辞有点不对劲,请原谅我。

这样的事情可能吗?您将如何配置某些请求(在本例中为涉及文件上传的请求)将由捆绑在与主 rails 应用程序相同的 heroku 存储库中的 Node 应用程序处理?

最佳答案

我认为不可能在同一个应用程序中混合使用 Rails 和 Node。但是,您可以通过使用两个相互通信的独立应用获得大致相同的功能。

您可以使用 ENV['DATABASE_URL'] 来确定您的数据库连接字符串。使用 heroku 控制台将其设置为 Node 应用程序的 ENV 变量(例如 heroku config:add OTHER_DB=your_connection_string)然后应该能够使用相同的连接字符串从您的其他 heroku 应用程序。如果您有专用数据库,您甚至可以在 heroku 之外访问它,请参阅:http://devcenter.heroku.com/articles/external-database-access

为了两个应用程序之间的无缝集成,您可以让 Rails 应用程序呈现的表单发布到 Node 应用程序的 URL。除了文件上传之外,通过隐藏的输入字段在该表单中包含您需要与 Node 应用程序通信的任何其他变量。上传到 Node 应用程序完成后,它可以将客户端重定向回 Rails 应用程序,将任何状态或变量作为获取参数传递。

在同一域的两个子域下运行这两个应用程序,您甚至可以在它们之间共享 cookie。

关于ruby-on-rails - 在 Heroku 上的同一个应用程序中的 Rails 和 Node?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6302937/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com