最好的当前rails后台任务方法?

Eri*_*ert 12 ruby-on-rails

我试图找出在后台运行脚本的最佳方法.我一直在四处寻找并找到了很多选择,但在过去的几年里,很多/大多数似乎已经变得不活跃.让我来描述一下我的需求.

rails app基本上是一个前端,用于配置何时以及如何运行这些脚本.脚本运行并生成报告并发送电子邮件警报.因此,用户必须能够配置启动时间以及这些脚本动态运行的频率.脚本本身应该可以访问rails环境,以便将生成的报告保存在DB中.

只是想从无数的选项中找出最好的方法.

Ver*_*cus 12

我想你正在寻找一个后台工作排队系统.

为此,您要么寻找resquedelayed_job.两者都支持将来某个时刻的调度任务 - delayed_job本地执行此操作,而resque有一个名为resque_scheduler的插件.

您可以使用您指定的参数在后台排队作业,然后在您选择它们​​时将执行它们.您可以将作业设置为无限期或固定次数(至少使用resque-scheduler,不确定delayed_job).

delayed_job更容易设置,因为它保存了数据库中的所有内容.resque更强大,但要求你在你的堆栈中有redis - 但是如果你已经这样做了,它几乎是你问题的理想解决方案.


Dan*_*olt 12

我最近了解了Sidekiq,我觉得它真的很棒.

还有一个关于它的RailsCast - Sidekiq.


Cas*_*lho 6

无论何时访问https://github.com/javan/whenever,请查看gem .

它允许您安排cron作业等任务.

在linux下工作得很好,最后一次提交是14天前.我的一个朋友在一个项目中使用它并对它非常满意.

编辑:看看gem delayed_job,它有利于在后台执行长任务.创建cron作业时仅用于启动其他任务很有用.