我需要一种更好的方法来使用我的警报代码。现在我有一个代码可以检查aws ecs上的空间,如果空间小于5gb,使用slack api发送一个简单的通知。我使用了这段代码jenkins并设置定期计划每15分钟运行一次。但是一旦通知被触发,我希望它停止检查4个小时,因此,它不会用信息填充松弛通道。所以,我使用了14400之后的睡眠条件被触发了。但这让jenkins的执行者等待。有更好的方法吗?
答案 0 :(得分:0)
如果您真的想要更好的方式,则应使用更好的工具。有很多工具(一些免费的),可以以有状态的方式监视某些东西(例如,使用守护进程)。
在使用Jenkins的上下文中写入日志(或松弛通道)是一种无状态的,例如,您无法检查当前是否触发了警报。
由于您无法检查是否已触发警报 - 使用jenkins和您在问题中请求的逻辑('贪睡功能')可能非常难看。
一般情况下,我建议使用 Conditional BuildStep 来触发一个步骤,如果条件满足(即如果警报尚未触发),但由于无法通知你可以轮询这些信息,或者使用Jenkins实现这一点,而不是解决方案是“hackish”,比如创建一个文件来表明警报已经开启,如果它是在4个多小时前创建的,则将其从另一个工作中删除 - 我建议你查看工具更适合这份工作。