我知道有几个插件可以进行异步处理。哪一款最好,为什么?

我所知道的有:

有帮助吗?

解决方案

椋鸟和工作鸟看起来很有趣(参见 截屏视频)如果您可能有多个这样的进程,并且您想要将它们排队。

您可能还对 之前的截屏视频 使用 rake 作为后台进程,并且将来可能会是同一问题的另一种解决方案。

其他提示

我会将 DJ(延迟工作)添加到列表中 - http://blog.leetsoft.com/2008/2/17/delayed-job-dj

github 上的人最近给了它一个很好的评论: http://github.com/blog/197-the-new-queue

某件事是否是“最佳”解决方案实际上取决于您要解决的问题是什么。在某些情况下,最佳解决方案将是最轻量级的解决方案,而在其他情况下,则是最重量级的解决方案。

背景Rb 可能是功能最齐全的 Rails 后台作业处理器,但它也是最复杂的,因此需要更多的投资才能掌握它。BackgroundRb 可能可以处理大多数用例,从简单到复杂。

我听说过关于 Ara T 的很多好消息。霍华德的 后台作业 (Bj) 引用自述文件是 Rails 的脑死亡简单零管理后台优先级队列. 。这是一个更轻量级的解决方案,因此对于大多数场景来说可能比 BackgroundRb 更可取。

如果您想要的只是不频繁的离线批处理式处理的解决方案,那么 脚本/运行程序 所有 Rails 应用程序附带的就足够了。

如需进一步阅读,您可能需要查看 如何在Rails 中运行后台作业 来自 铁路维基百科.

Resque 也可以帮助你。

它是一个非常好的工具,用于创建后台作业、将这些作业放置在多个队列上并稍后处理它们。

Github 的人已经创建并使用了它。

下面的文章可能会帮助您入门:

http://rubylearning.com/blog/2010/11/08/do-you-know-resque/

Starling + Workling 插件非常简单。另外,它使用简单、经过测试且可扩展的 Memcached。

背景DRb - 优点:功能齐全,消息传递,缺点:线程化(哎呀——Rails 不是线程安全的!),复杂

守护进程生成器 - 优点:简单,运行作业就是这样!,缺点:没有那些花哨的消息传递的东西。

我们使用 Cron。易于设置、易于维护,并且始终有效。

BackgroundRb 会吃掉你的大脑。

BackgrounDRb 不是线程化的,它完全基于进程。它仅具有线程池功能,如果用户想要同时处理 IO 密集型任务,则可以使用该功能。

尝试 1.1 版本并让我(在我的博客上)或邮件列表上了解任何问题。

许可以下: CC-BY-SA归因
不隶属于 StackOverflow
scroll top