1

如何从我的脚本中停止 rufus-scheduler:

@scheduler = Rufus::Scheduler.new
job = @scheduler.schedule_every '3m' do |job|
  # processing
end
job.call

我只想在第一步测试作业是否正在运行,如果真的停止作业。谢谢

4

1 回答 1

3

这是一个独立的脚本,展示了如何做到这一点:

require 'rufus-scheduler'

scheduler = Rufus::Scheduler.new

job = scheduler.schedule_every '1s' do
  # processing...
  sleep 3600
end

# later on...

sleep 2

p job.running?   # true

job.kill if job.running?

p job.running?   # false

文档:https ://github.com/jmettraux/rufus-scheduler/#job-methods

如果您不能保留作业实例但可以保留字符串,则可以执行以下操作:

job_id = scheduler.every '3m' do
  # processing...
end

# later on...

job = scheduler.job(job_id)

文档:https ://github.com/jmettraux/rufus-scheduler/#schedulerjobjob_id

于 2014-03-07T21:55:04.737 回答