如何在异常情况下优雅地退出 spring 云函数定义?
How to gracefully exit a spring cloud function definition on exception scenario?
我在我的项目中使用 spring 云函数链接,如下所示:
spring.cloud.function.definition = func_A|func_B|func_C|func_D
上面的定义将func_A
的结果通过管道传输到func_B
,从func_B
到func_C
等等...
现在,如果我在 func_B
中有一个业务逻辑需要停止传播到以下函数(fun_C
和 func_D
),该怎么做?我知道在 func_B
中抛出异常会停止传播,但是除了抛出异常之外还有什么优雅的方法吗?
基本上我在代码级别需要这样的东西:
if(true){
proceed to `func_C` and `func_D`
}else{
stop and return (without throwing exception)
(or) route to a consumer function (where I will just log a message)
}
提前致谢:)
问题出在术语上。您使用的是“链接”一词,因此您提出了有关传播等的问题。 . .
然而。 . .
没有“链接”。存在“组合”,组合的结果是单个函数(就好像您自己在单个函数中编写了所有内容一样)。
如此有效,您在问如何在不产生输出的情况下调用函数?那根本无法编译。所以要么抛出异常,要么你必须 return 东西。
我在我的项目中使用 spring 云函数链接,如下所示:
spring.cloud.function.definition = func_A|func_B|func_C|func_D
上面的定义将func_A
的结果通过管道传输到func_B
,从func_B
到func_C
等等...
现在,如果我在 func_B
中有一个业务逻辑需要停止传播到以下函数(fun_C
和 func_D
),该怎么做?我知道在 func_B
中抛出异常会停止传播,但是除了抛出异常之外还有什么优雅的方法吗?
基本上我在代码级别需要这样的东西:
if(true){
proceed to `func_C` and `func_D`
}else{
stop and return (without throwing exception)
(or) route to a consumer function (where I will just log a message)
}
提前致谢:)
问题出在术语上。您使用的是“链接”一词,因此您提出了有关传播等的问题。 . . 然而。 . . 没有“链接”。存在“组合”,组合的结果是单个函数(就好像您自己在单个函数中编写了所有内容一样)。 如此有效,您在问如何在不产生输出的情况下调用函数?那根本无法编译。所以要么抛出异常,要么你必须 return 东西。