在 Rails 应用程序中运行异步作业的最佳方式是什么?
-
02-07-2019 - |
题
其他提示
我会将 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 的人已经创建并使用了它。
下面的文章可能会帮助您入门:
Starling + Workling 插件非常简单。另外,它使用简单、经过测试且可扩展的 Memcached。
我们使用 Cron。易于设置、易于维护,并且始终有效。
BackgroundRb 会吃掉你的大脑。
BackgrounDRb 不是线程化的,它完全基于进程。它仅具有线程池功能,如果用户想要同时处理 IO 密集型任务,则可以使用该功能。
尝试 1.1 版本并让我(在我的博客上)或邮件列表上了解任何问题。