Ruby on rails RubyonRails Cron作业示例

Ruby on rails RubyonRails Cron作业示例,ruby-on-rails,Ruby On Rails,嗨,嗯,对rails平台来说是个新手,正在寻找rails cron作业调度教程。我已经学习了教程use Anywhere和其他调度gem,但是我正在寻找一个在rails上使用cron选项卡的核心ruby实现。提前感谢您Railscasts在使用Cron方面有很大的优势 编辑 如果您想了解它是如何从头开始实现的,您可以看看如何实现Gem来设置cron作业,您可以借助一个名为 它很容易实现。去做吧。你也可以使用外部免费服务来外包工作 免责声明:我提出了许多人反对这种方法(请参阅),但是从cron作业

嗨,嗯,对rails平台来说是个新手,正在寻找rails cron作业调度教程。我已经学习了教程use Anywhere和其他调度gem,但是我正在寻找一个在rails上使用cron选项卡的核心ruby实现。提前感谢您

Railscasts在使用Cron方面有很大的优势

编辑


如果您想了解它是如何从头开始实现的,您可以看看如何实现Gem来设置cron作业,您可以借助一个名为


它很容易实现。去做吧。

你也可以使用外部免费服务来外包工作


免责声明:我提出了

许多人反对这种方法(请参阅),但是从cron作业中使用curl/wget触发应用程序的操作对于周期性任务来说可能是一种快速而简单的解决方案

你只需要记住几件事:

  • 将操作的执行时间保持在较低的水平(因为它会像常规web请求一样阻止您的应用程序)
  • 确保您不允许任何人触发该操作(通过使用IP限制、秘密令牌或其他安全措施)
关于这个主题的更多信息,我已经写过了。

为了在“core”rails/ruby中最小化“cron-like”任务的设置,我创建了

不需要安装任何东西(除了gem)或在rails之外安装任何东西

gem'arask'
添加到您的gem文件中,运行
bundle安装
rails生成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

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

我使用的是
rufus调度程序
,它使用线程执行调度的功能。配置非常简单。只需3个步骤:

1-添加gem
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

更多疑问:

cron是cron,与rails无关。嘿,你可以在rails应用程序中安排cron作业。使用“无论何时”宝石。这是一块简单又好的宝石。看看我的答案。这可能对你有帮助。我在我的应用程序中使用了相同的gem。@xdazz yah cron is cron问题是关于rubyHi中的一个实现的,我想从艰苦的过程中学习它。谢谢你嗨,我想从头开始学习,而不是什么时候。谢谢好吧,我想你可以看看where gem的源代码(),这可能会给你一个很好的起点,因为它从零开始做你想做的事情……没问题,我已经编辑了答案,以更好地反映原始问题是什么好的解决方案。只有一个注释,
scheduler
应该在第8行用
s
更新。谢谢你,伙计!我没有注意到这一点。非常感谢你们的投票!