您对rails平台非常陌生,并且正在寻找rails cron作业调度教程。我已经完成了教程使用的时间和其他调度宝石,但是我正在寻找使用rails上的cron选项卡的核心ruby实现。提前谢谢
答案 0 :(得分:2)
答案 1 :(得分:2)
要设置cron作业,您可以依赖名为WHENEVER
的简单gem的帮助它很容易实现。去吧。
答案 2 :(得分:1)
许多人反对这种方法(请参阅this SO thread),但使用cron作业中的curl / wget触发应用程序的操作可能是定期任务的快速简便的解决方案。
你必须记住一些事情:
有关此主题的更多信息,我已写过an article。
答案 3 :(得分:1)
为了在“core”rails / ruby中设置“cron-like”任务的最小化,我创建了https://github.com/Ebbe/arask
无需安装任何东西(宝石除外)或在轨道外设置任何东西。
将gem 'arask'
添加到您的Gemfile,运行bundle install
,rails 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
如果服务器正在运行,任务将自动运行。
答案 4 :(得分:0)
您还可以使用外部免费服务外包cronjobs http://guardiano.getpeople.in
免责声明:我做到了
答案 5 :(得分:0)
我正在使用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
scheduler.in '2d' do
# every 2 days exec this
puts "Now it's me"
end