-1

我正在查看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线。

4

2 回答 2

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 行。

它与您的问题标题有什么关系?你在混合问题吗?

于 2017-02-06T21:23:54.297 回答
0

通常,这些调度程序通过 cron 作业运行。那么你的要求的问题是 cron 作业不知道你是第 10 天还是第 24 天,因为它没有跟踪。一种可能的解决方案是创建一个单独的表来更新 cron 作业详细信息。

我在想一个像这样的桌子,

scheduler_details

- id
- occurrence_count
- created_date
- updated_date
_ scheduler_type

因此,现在当您运行脚本时,您可以创建或更新详细信息。(您可以通过 搜索脚本scheduler_type,这样

  • 你可以检查出现的次数
  • 使用创建日期,您可以计算 24 天

HTH

于 2017-02-06T21:03:52.393 回答