Zabbix:如果第一个条件已经导致错误,是否跳过触发器中第二个条件的评估?

Zabbix:如果第一个条件已经导致错误,是否跳过触发器中第二个条件的评估?

我有一个包含 2 个条件的触发表达式,其中第一个条件很简单,但是第二个条件对 CPU 的要求很高,因为它会进行一些繁重的平均值计算:

(条件 A)且(条件 B)

我试图使用条件 A 来跳过条件 B 的评估。但即使条件 A 结果为假,zabbix 仍然会评估条件 B。有什么办法可以防止这种情况发生吗?

答案1

我不了解 Zabbix,但我曾经使用过另一种语言,即使结果已经被确定为错误,它也不会中途退出,它总是会评估整行。

解决方法是将两半分开,先拆掉一半再撤离。

if (condA) {
    if (condB)
    doTask(); 
    }
else return(); --optional

用括号括起条件 B 将允许条件 A 的结果为 FALSE,从而跳过括号部分。您可能需要也可能不需要特定的else return(),具体取决于语言的工作方式。

相关内容