Luk*_*uke 12 ruby-on-rails heroku node.js
我正在构建一个Rails应用程序,通过CarrierWave处理文件上传.目前,较大的文件上传会阻塞服务器很长一段时间.我见过像s3-swf-upload-plugin gem这样的解决方案,跳过本地服务器并直接从浏览器发送文件到S3,但这需要对预生成的唯一文件名进行一些修改并将它们与数据库同步.我敢肯定这不会太麻烦,但是Heroku的新Cedar堆栈让我想到将这些长时间运行的请求卸载到在同一个应用程序中运行的node.js实例.我对这些事情并不是很有经验,所以请原谅我的措辞,如果它有点偏.
这样的事情会成为可能吗?您如何配置某些请求(在这种情况下涉及文件上传的请求)将由与主rails应用程序捆绑在同一个heroku存储库中的节点应用程序处理?
我不认为可以在同一个应用程序中混合使用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应用程序,将任何状态或变量作为get参数传递.
在同一域的两个子域下运行这两个应用程序,您甚至可以在它们之间共享cookie.
归档时间: |
|
查看次数: |
3483 次 |
最近记录: |