03 - running periodic tasks without cron or at.rb

来自「O Reilly Ruby Cookbook source code」· RB 代码 · 共 32 行

RB
32
字号
#!/usr/bin/ruby# lunchtime.rbdef background_run_at(time)   fork do    sleep(1) until Time.now >= time    yield  endendtoday = Time.nownoon = Time.local(today.year, today.month, today.day, 12, 0, 0)raise Exception, "It's already past lunchtime!" if noon < Time.nowbackground_run_at(noon) { puts "Lunchtime!" }#---#!/usr/bin/ruby# reminder.rbdef background_every_n_seconds(n)  fork do    loop do      before = Time.now      yield      interval = n-(Time.now-before)      sleep(interval) if interval > 0    end  endendbackground_every_n_seconds(15*60) { puts 'Get back to work!' }#---

⌨️ 快捷键说明

复制代码Ctrl + C
搜索代码Ctrl + F
全屏模式F11
增大字号Ctrl + =
减小字号Ctrl + -
显示快捷键?