15

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

我知道的有:

4

8 回答 8

9

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

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

于 2008-11-04T05:21:53.130 回答
8

如果您可能有几个这样的过程,并且您想将它们排队,那么starling 和 workling 似乎很有趣(请参阅截屏视频)。

您可能还会对使用 rake 进行后台进程的上一个截屏视频感兴趣,而未来的截屏视频可能是关于同一问题的另一种解决方案。

于 2008-09-23T22:53:36.127 回答
7

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

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

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

如果您想要的只是一个不常见的离线批处理式处理的解决方案,那么script/runner所有 Rails 应用程序附带的解决方案就绰绰有余了。

如需进一步阅读,您可能需要查看Rails Wiki中的HowToRunBackgroundJobsInRails

于 2008-09-24T08:09:17.833 回答
4

Resque 也可以帮助您。

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

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

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

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

于 2010-12-12T16:56:30.243 回答
3

BackgrounDRb - 优点:功能齐全,消息传递,缺点:线程化(eek - Rails 不是线程安全的!),复杂

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

于 2008-09-23T22:52:42.213 回答
3

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

于 2008-09-24T15:15:17.937 回答
1

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

BackgroundRb 会吃掉你的大脑。

于 2008-09-24T14:31:15.700 回答
0

BackgrounDRb 没有线程,它完全基于进程。如果他想同时处理 IO 绑定任务,它只有一个用户可以使用的线程池功能。

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

于 2008-11-04T04:56:18.753 回答