Ruby on rails RubyonRails Cron作业示例
嗨,嗯,对rails平台来说是个新手,正在寻找rails cron作业调度教程。我已经学习了教程use Anywhere和其他调度gem,但是我正在寻找一个在rails上使用cron选项卡的核心ruby实现。提前感谢您Railscasts在使用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作业
如果您想了解它是如何从头开始实现的,您可以看看如何实现Gem来设置cron作业,您可以借助一个名为
它很容易实现。去做吧。你也可以使用外部免费服务来外包工作
免责声明:我提出了许多人反对这种方法(请参阅),但是从cron作业中使用curl/wget触发应用程序的操作对于周期性任务来说可能是一种快速而简单的解决方案 你只需要记住几件事:
- 将操作的执行时间保持在较低的水平(因为它会像常规web请求一样阻止您的应用程序)
- 确保您不允许任何人触发该操作(通过使用IP限制、秘密令牌或其他安全措施)
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-添加gemgem'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
更新。谢谢你,伙计!我没有注意到这一点。非常感谢你们的投票!