我的任务是监视来自股票网站的一些信息。
它应该每隔10分钟就检查一下网站的股票状况,
一旦股票指数上升,检查周期应改为每5秒。
如果sotck指数下降,则检查周期应为10分钟。
用于运行定期任务
我发现gem whenever可以执行cron任务。但是我不知道如何动态地改变检查周期?有什么想法吗?
发布于 2015-01-19 07:08:06
对于这个简单的任务,我将创建两个不同的cron任务,一个是“全局”变量,表示是否应该实际运行频繁的任务。这样,在索引上升的情况下,每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这绝对不是一个最优雅的解决方案,但它确实很有用,而且非常容易处理/测试。
https://stackoverflow.com/questions/28018876
复制相似问题