2

嗨,对 Rails 平台很陌生,并且正在寻找 Rails cron 作业调度教程。我已经完成了使用任何时间和其他调度 gem 的教程,但是我正在寻找一个核心 ruby​​ 实现,它带有 rails 上的 cron 选项卡。先感谢您

4

6 回答 6

3

Railscasts 有一个关于使用 Cron的不错的教程。

编辑

如果您想要一个如何从头开始实现的示例,您可以在此处查看Whenever Gem 是如何实现

于 2013-06-18T09:25:59.763 回答
2

要设置 cron 作业,您可以依靠名为WHENEVER的简单 gem 的帮助

它很容易实现。去吧。

于 2013-06-18T09:28:06.250 回答
1

许多人反对这种方法(请参阅此 SO 线程),但使用 cron 作业中的 curl/wget 触发应用程序的操作可能是定期任务的快速简便的解决方案。

你只需要记住几件事:

  • 保持操作的执行时间较短(因为它会阻止您的应用程序,就像常规 Web 请求一样)
  • 确保您不允许任何人触发该操作(通过使用 IP 限制、秘密令牌或其他安全措施)

有关此主题的更多信息,我已经写了一篇关于它的文章。

于 2015-09-22T10:47:15.913 回答
1

对于“核心”rails/ruby 中“类 cron”任务的最小设置,我创建了https://github.com/Ebbe/arask

无需安装任何东西(除了 gem)或在 rails 之外设置任何东西。

添加gem 'arask'到您的 Gemfile 中bundle installrails generate arask:install运行rails db:migrate.

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

arask.create task: 'send:logs', cron: '0 2 * * *' # At 02:00 every day
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

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

于 2018-06-12T08:04:43.867 回答
1

我正在使用rufus-scheduler,它使用线程来执行预定的功能。配置非常简单。只需 3 个步骤:

1 - 添加宝石gem 'rufus-scheduler', '~> 3.6'

2 - 创建文件config/initializers/scheduler.rb

3 - scheduler.rb 中的编程时间表:

require 'rufus-scheduler'
s = Rufus::Scheduler.singleton
s.every '5s' do
    #do every 5 seconds exec this code
    puts "WOWWWWWWWWWWWWWWWWWWWW"
end

s.in '2d' do
  # every 2 days exec this
  puts "Now it's me"
end

更多疑问:https ://github.com/jmettraux/rufus-scheduler

于 2019-05-27T12:32:51.857 回答
0

您还可以使用外部免费服务来外包 cronjobs http://guardiano.getpeople.in

免责声明:我做到了

于 2015-06-11T15:39:41.553 回答