我的任务是监控来自stock website的一些信息。
应该每隔 10分钟检查网站的库存状态,
如果股票指数上涨,检查期应改为 5秒。
如果sotck索引正在下降,则检查周期应为 10分钟。
我发现gem whenever
可以执行cron任务。
但我没有动态改变检查期的想法?
任何想法?
答案 0 :(得分:1)
对于这个简单的任务,我将创建两个不同的cron任务和一个,例如“global”变量,表示是否应该实际运行频繁任务。这样,每10分钟任务将始终运行,并且只有索引上升时,每5秒任务才会运行。
class Checker
@@rising = false
class << self
def check
@@rising = actual_check > 0 # core check func
end
def freq_check
check if @@rising
end
def rare_check
check
end
end
end
every 10.minutes do
runner "Checker.rare_check"
end
every 5.seconds do
runner "Checker.freq_check"
end
这绝对不是一个最优雅的解决方案,但它确实很容易处理/测试。