首页 > 解决方案 > 忽略负鼠断路器中的 HTTP 404 错误?

问题描述

我正在构建一个 express api,并使用负鼠在其中实现了一个断路器。

断路器有没有办法忽略应用程序生成的自定义 HTTP 异常?我尝试添加该errorFilter选项,但遇到了同样的问题。它仍在将其视为电路故障。

   const options: CircuitOptions = {
        timeout: 3000, // If function takes longer than 3 seconds, trigger a failure
        errorThresholdPercentage: 50, // When 50% of the requests fail, trip the circuit
        resetTimeout: 30000, // After 30 seconds try again
        errorFilter: err => {
            // Filtering out Http404Error here.
            return err.status === 404 // Not Working
        }
    }

标签: javascriptnode.jstypescriptexpresscircuit-breaker

解决方案


在 opossum-playground repo 下有一个使用 errorFilter 属性的负鼠示例

https://github.com/nodeshift-starters/opossum-playground/tree/master/error-filter

现在,在您的情况下,可能err.status不是返回状态代码而是未定义(我在这里猜测,因为我没有完整的代码)并且从 errorFilter 返回的值不是真实的。

所以负鼠一直认为它是失败的。


推荐阅读