我有一个包含 2 个条件的触发表达式,其中第一个条件很简单,但是第二个条件对 CPU 的要求很高,因为它会进行一些繁重的平均值计算:
(条件 A)且(条件 B)
我试图使用条件 A 来跳过条件 B 的评估。但即使条件 A 结果为假,zabbix 仍然会评估条件 B。有什么办法可以防止这种情况发生吗?
答案1
我不了解 Zabbix,但我曾经使用过另一种语言,即使结果已经被确定为错误,它也不会中途退出,它总是会评估整行。
解决方法是将两半分开,先拆掉一半再撤离。
if (condA) {
if (condB)
doTask();
}
else return(); --optional
用括号括起条件 B 将允许条件 A 的结果为 FALSE,从而跳过括号部分。您可能需要也可能不需要特定的else return()
,具体取决于语言的工作方式。