人们在Rails应用程序中使用了哪些消息队列,以及 Select 它的驱动力是什么.最近推特上关于室内排队的椋鸟坠落的宣传是否影响了现有的设计决策.

我正在开发一个应用程序,它需要一个消息队列来处理一些后台任务,我没有做太多这方面的工作,我过go 看到的大部分内容都是关于Starling和Workling的,老实说,这个应用程序不是很大,这个解决方案可能就足够了,但我很想获得整合最佳解决方案的经验,因为我相信我会在某个时候将其整合到一个更大的应用程序中.

对于Rails应用程序,您建议使用哪些消息队列???

编辑:谢谢你的建议,这个周末我会看一些.

再次编辑:我环顾四周,有点不知所措.然而,我将着手将RabbitMQ与工作集成到我正在构建的应用程序中,如果我需要一些关于快速队列的知识,那么我将拥有这些知识,并知道它是否适合我的需要.

编辑:找到越来越多适合我的DJ就好了,如果我在一个网站上"长大"了,我会说Resque就是我要go 的地方.

编辑:(2014年12月)我问这个问题已经很久了,但我看到它仍然得到了一些意见或投票,所以我想我现在应该更新一下我 Select 背景工作者的方法.

在我看来,目前在Ruby中运行后台作业(job)的最佳方式是使用Sidekiq.很多人都称赞Sidekiq是线程化的工作线程,而不是每个工作线程的进程,这比我在Sidekiq之前使用的Resque之类的工具占用的内存要少得多.这很好,但对我来说,这不是杀手级功能.通过将Sidetiq与Sidekiq结合使用,作业(job)的调度非常简单,以至于我切换到了Sidekiq,并且从来没有回顾过它,这是迄今为止我使用过的最简单的作业(job)调度,并且使Sidekiq成为了一种轻松使用的工具.

推荐答案

作为一个更新——GitHub已经转移到Redis上,而不是延迟作业(job).不过,对于较小的设置,他们仍然建议延迟工作:

https://github.com/resque/resque

Ruby-on-rails相关问答推荐

Data-turbo-stream=&FALSE&QOOT;不适用于带有方法POST的表单

将参数传递给视图中的嵌入操作时遇到问题

Puma 工作人员无法在 Ubuntu 20.04 VM 上的 Rails 5.2 中启动

组织和/或存储我一直在 RSpec 中使用的模拟对象的最佳方式是什么?

Ruby:如何通过谓词将一个集合拆分为 ruby​​ 中的两个集合?

您如何测试方法调用块内调用的方法,以及使用 rspec 在块内传递给该方法调用的内容

在 Rails 3 中,如何在路由中使用锚点作为 ID?

如何配置设计以使用自定义邮箱布局?

Rails:保存子对象时更新父对象

在 Nokogiri 中获取属性值以提取链接 URL

升级到设计 3.1 => 获取重置密码令牌无效

如何按值按降序对哈希进行排序并在 ruby​​ 中输出哈希?

删除链接在 Rails 3 视图中发送Get而不是Delete

Rspec/Capybara 正在加载,循环要求被认为是有害的

升级到 ruby​​ 1.9.2 后奇怪的无法要求配置/ bootstrap

rmagick 和 OS X Lion

在 Ruby on Rails 中循环对象属性

使用 ruby​​ on rails 活动记录插入多条记录

redirect_to 和 render 是可交换的吗?

Rails:如何将日期时间字符串解析为特定时区