gpt4 book ai didi

Spring 集成 : How to know when a work flow completes?

转载 作者:行者123 更新时间:2023-12-04 17:21:36 24 4
gpt4 key购买 nike

我正在为多个 spring 集成部署添加日志记录/监控功能。我想在工作流开始时创建一个记录器事务,并在工作流结束时关闭日志事务。在记录器事务结束时,我会将日志和指标发送到集中式日志服务器。在一天结束时,我想查看跨多个 Spring 集成部署的工作流中的所有消息的日志。

spring 集成部署跨越很多团队,我不能指望每个团队都为我添加日志记录代码,所以我想编写将在 spring 集成部署中运行的代码。

要启动日志事务,解决方案是在一组入站消息 channel 上使用全局 channel 拦截器。跨部署构建的所有工作流都使用同一组入站 channel ,因此启动日志事务拦截器将运行。我还将记录器事务详细信息作为消息 header 的一部分传递

但我无法找到结束交易的解决方案。工作流可以是同步的也可以是异步的。此外,并非工作流中的所有端点都有输出 channel 。

关于如何关闭记录器事务的任何策略/想法?

下图显示了示例工作流程的示例:

enter image description here

最佳答案

当您有一个以 channel 适配器(或其他不产生任何结果的端点)结束的流时,将最后一个 channel 设为发布-订阅 channel ;为终止“交易”的 channel 订阅第二个端点。

我通常更喜欢在此类端点上添加 order 属性 - 使常规端点 order="1" 和流终止符 order="2" - 清楚地表明它是在主要端点之后调用的。

重要的是没有任务执行器被添加到 channel 中,以便在同一个线程上连续调用端点。

关于 Spring 集成 : How to know when a work flow completes?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/34820932/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com