Ruby on rails Rails 5没有Cron的常规任务

Ruby on rails Rails 5没有Cron的常规任务,ruby-on-rails,docker,cron,Ruby On Rails,Docker,Cron,我是Rails新手,所以我不确定这是否是一个愚蠢的问题,但是 我必须运行常规任务才能将数据填充到我的Rails应用程序中。今天,我使用where gem创建Cron条目,以便在我的系统上运行这些任务。我想将Rails应用程序迁移到Docker,以便更轻松地扩展它。我知道在Drupal(PHP)中有Poorman的Cron,它使用请求来驱动调度 有没有一种方法可以在Rails内部实现调度而不使用Cron,或者有更好的方法来管理与Rails配合良好的常规任务? 有没有一种不使用Cron在Rails内

我是Rails新手,所以我不确定这是否是一个愚蠢的问题,但是

我必须运行常规任务才能将数据填充到我的Rails应用程序中。今天,我使用where gem创建Cron条目,以便在我的系统上运行这些任务。我想将Rails应用程序迁移到Docker,以便更轻松地扩展它。我知道在Drupal(PHP)中有Poorman的Cron,它使用请求来驱动调度

有没有一种方法可以在Rails内部实现调度而不使用Cron,或者有更好的方法来管理与Rails配合良好的常规任务?

有没有一种不使用Cron在Rails内部实现调度的方法 还是一种更好的方法来管理与Rails配合良好的常规任务

Cron几乎是在*nix系统上运行计划活动的常用工具,大多数gem实际上都在幕后利用Cron,事实上,除非您想使用第三方服务,否则避免Cron可能需要做更多的工作

Rails 5的新功能之一是:

活动作业是一个框架,用于声明作业并使其在 各种排队后端。这些工作可以是任何形式的 定期的清理,收费,邮寄。 任何可以分割成小工作单元并运行的东西 平行,真的

它可以与多个后端一起使用:

有没有一种不使用Cron在Rails内部实现调度的方法 还是一种更好的方法来管理与Rails配合良好的常规任务

Cron几乎是在*nix系统上运行计划活动的常用工具,大多数gem实际上都在幕后利用Cron,事实上,除非您想使用第三方服务,否则避免Cron可能需要做更多的工作

Rails 5的新功能之一是:

活动作业是一个框架,用于声明作业并使其在 各种排队后端。这些工作可以是任何形式的 定期的清理,收费,邮寄。 任何可以分割成小工作单元并运行的东西 平行,真的

它可以与多个后端一起使用:

是的,我创建它是为了让东西简单

不需要安装任何东西(除了gem)或在rails之外安装任何东西。没有后台进程,实际作业除外

gem'arask'
添加到您的gem文件中,运行
bundle安装
rails生成arask:install
rails db:migrate

现在,您可以在config/initializers/arask.rb文件中设置任务:

arask.create script: 'puts "IM ALIVE!"', interval: :daily
arask.create task: 'my:awesome_task', interval: :hourly
arask.create task: 'my:other_awesome_task', interval: 2.hours
如果服务器正在运行,任务将自动运行。

是的,我创建任务是为了保持简单

不需要安装任何东西(除了gem)或在rails之外安装任何东西。没有后台进程,实际作业除外

gem'arask'
添加到您的gem文件中,运行
bundle安装
rails生成arask:install
rails db:migrate

现在,您可以在config/initializers/arask.rb文件中设置任务:

arask.create script: 'puts "IM ALIVE!"', interval: :daily
arask.create task: 'my:awesome_task', interval: :hourly
arask.create task: 'my:other_awesome_task', interval: 2.hours

如果服务器正在运行,任务将自动运行。

您可以使用sidekiq+sidetiq。sidetiq似乎不再维护。是的。好吧,那没关系。Sidekiq和Resque在集群上似乎是一个不错的选择,尽管它需要一些工作才能启动和运行。scratch…看起来Resque和Resque调度程序是我需要的。你可以使用Sidekiq+sidetiq。sidetiq似乎不再维护了是的。好吧,那就别管了。Sidekiq和Resque似乎是集群上的一个不错的选择,尽管它需要一些工作才能启动和运行。从头开始…看起来Resque和Resque scheduler是我需要的。我没有看到任何使用ActiveJob将作业延迟到特定日期/时间的方法。你能用参考资料更新你的答案吗?
GuestsCleanupJob.set(等到:Date.明天.中午)。稍后执行(guest)
-阅读指南,它非常简单。我只是使用ORAS生成了一个完整的Rails环境,并添加了一个作业集,一次启动一个作业集……它成功了!令人惊叹的!我最终使用sidekiq cron来执行重复性任务。我没有看到任何使用ActiveJob将作业延迟到特定日期/时间的方法。你能用参考资料更新你的答案吗?
GuestsCleanupJob.set(等到:Date.明天.中午)。稍后执行(guest)
-阅读指南,它非常简单。我只是使用ORAS生成了一个完整的Rails环境,并添加了一个作业集,一次启动一个作业集……它成功了!令人惊叹的!我最终使用sidekiq cron执行重复性任务。