我在Heroku上部署了Rails应用程序。它有“项目”模型,在“创建”操作中正在处理一些数据(文本分析,有时是巨大的文本),这个过程需要很长时间。如果另一个请求到达Web服务器,则加载任何页面所用的时间太长。避免这种延迟的最佳方法是什么?Ruby on Rails,多个请求延迟
0
A
回答
0
在这种情况下,您通常会使用后台作业管理器,如DelayedJob或Resque。如果您刚刚开始,我建议您使用DJ播放,因为它设置起来非常简单,并且不需要任何外部依赖。
既然你已经提到过Heroku,他们在你的应用程序开始之前就已经写好了here。从本质上讲,您需要长时间运行的任务,并将它们添加到作业队列中(在DJ的情况下,只是数据库中的另一个表),其中另一个进程将监视该表并按其出现的方式运行作业。通过这种方式,您可以在作业在后台工作时立即向用户返回响应,同时保持您的Web dyno免费处理请求。
如果您使用的是Heroku,那么您需要支付工人测功机才能与您的网络测试仪一起运行。
另外它取决于您的服务器设置。如果您使用的是像Unicorn这样的应用程序服务器,那么您应该可以在单个dyno中运行多个Rails进程,因此即使您的文本分析绑定了,也仍然可以处理Web请求。
但是诚实地说,这听起来好像你的应用还没有准备好在Heroku的生产环境中运行,因为这个问题在你部署之前应该已经有了一个解决方案。您不希望让Web进程被束缚在可能更适合后台工作进程的工作上。
相关问题
- 1. Ruby on Rails同时多个HTTP请求?
- 2. Ruby on Rails,ActiveRecord回调,延迟执行
- 3. Ruby on Rails的延迟更新
- 4. Ruby on Rails的 - 多POST请求
- 5. HTTP请求 - Ruby on Rails
- 6. 后台Ruby on Rails请求
- 7. Ruby on Rails simple_forms RESTful请求
- 8. 关注请求Ruby on Rails
- 9. 多个AJAX请求相互延迟
- 10. 延迟Alamofire请求
- 11. 延迟Ajax请求
- 12. Scrapy延迟请求
- 13. http请求延迟
- 14. Ruby on Rails:延迟作业延长作业之间的时间
- 15. Ruby on Rails HTTPS Post Bad请求
- 16. Ajax删除请求ReactJS和Ruby on Rails
- 17. 在Ruby on Rails中创建PUT请求?
- 18. Ruby on rails post请求路由
- 19. Flex Ruby on Rails http xml请求错误
- 20. Ruby on Rails Web服务与POST请求
- 21. Ruby on Rails接受发布请求
- 22. Ruby on Rails和JSON请求处理
- 23. 限制对Ruby on Rails API的请求
- 24. Ruby on Rails,如何复制HTTP请求
- 25. Ruby on Rails链接请求发送
- 26. Ruby on Rails POST请求失败
- 27. Torquebox多租户请求响应延迟
- 28. 每个请求的Django响应延迟
- 29. scrapy中的延迟请求
- 30. 确定请求延迟