rails 使用 rufus-scheduler 做定时任务

rufus-scheduler的github网址:https://github.com/jmettraux/rufus-scheduler
cron语法参考:
https://blog.csdn.net/wh13267207590/article/details/80095128
https://blog.csdn.net/m0_73696717/article/details/127531455
文章参考:https://blog.csdn.net/TomorrowAndTuture/article/details/112233016

1.在 Gemfile中加入依赖,再执行 bundle install

gem "rufus-scheduler" # 定时器

2.在 config/initializers 中创建 定时任务文件 my_task.rb

require 'rubygems'
require 'rufus/scheduler'

scheduler = Rufus::Scheduler.new

# scheduler.in '20m' do
#   # after 20 minutes
#   puts "hello world 1"
# end
#
# scheduler.at 'Thu Mar 26 07:31:43 +0900 2009' do
#   # at the appointed time
#   puts 'hello world 2'
# end
#
# scheduler.cron '0 22 * * 1-5' do
#   # every day of the week at 22:00 (10pm)
#   puts 'hello world 3'
# end

scheduler.every '10s' do
  # every 5 minutes
  puts 'hello world 10'
  ScheduleHelper.schedule_task
end

# scheduler.join # 加了这行 ,项目就启动不起来,一直卡在定时任务上;直接运行脚本,加上 scheduler.join 才会生效

3.启动rails项目即可

posted @ 2023-03-16 16:49  让时间变成力量  阅读(133)  评论(0)    收藏  举报