我正在查看https://github.com/jmettraux/rufus-scheduler,它很好地允许我安排和链接事件。
但我希望事件在第10次发生后或24天之后停止。
我该怎么做?
我的情况是:
运行一个脚本,该脚本根据间隔创建定期作业,然后在给定日期或事件发生后停止。
这就是我所做的。
def run_schedule(url, count, method, interval)
puts "running scheduler"
scheduler = Rufus::Scheduler.new
scheduler.every interval do
binding.pry
attack_loop(url, count, method)
end
end
我正在测试我的网站,并希望在内存中安排attack_loop
以便在该时间间隔内运行。
但似乎它从未到达binding.pry
行。
答案 0 :(得分:0)
通常这些调度程序通过cron作业运行。然后你的要求的问题是cron job不知道你是第10次出现还是24天,因为它没有跟踪。一种可能的解决方案是创建一个单独的表来更新cron作业详细信息。
我在想一张像
这样的表scheduler_details
- id
- occurrence_count
- created_date
- updated_date
_ scheduler_type
因此,现在当您运行脚本时,您可以创建或更新详细信息。 (您可以按scheduler_type
搜索脚本
HTH
答案 1 :(得分:0)
美好的一天,您可以指定作业应该运行的次数:
https://github.com/jmettraux/rufus-scheduler/#times--nb-of-times-before-auto-unscheduling
如果你需要更复杂的停止条件,你可以这样做:
scheduler.every interval do |job|
if Time.now > some_max_date
job.unschedule
else
attack_loop(url, count, method)
end
end
但似乎它从未击中binding.pry行。
你的问题标题有什么关系?你在混合问题吗?