Spring integration 如何判断Spring集成入站电子邮件适配器是否已成功启动,而不是假设没有引发错误

Spring integration 如何判断Spring集成入站电子邮件适配器是否已成功启动,而不是假设没有引发错误,spring-integration,Spring Integration,我们使用SI进行电子邮件集成,需要设置已启动适配器的状态。我看不到任何直接的方法来判断适配器(如带有轮询器的Imap)是否已启动,而没有任何问题,除非假设没有向错误通道抛出错误事件 我们在连接异常的情况下进行了最大尝试,然后我们不知道它是否已从该连接故障中恢复 这会在更新已启动适配器的实际状态时造成一些困难 谢谢。您可以使用 创建AbstractMessageSourceAdvice的子类。如果调用afterReceive()方法,则表示操作成功(无论轮询是否实际产生消息)。成功启动适配器,适配

我们使用SI进行电子邮件集成,需要设置已启动适配器的状态。我看不到任何直接的方法来判断适配器(如带有轮询器的Imap)是否已启动,而没有任何问题,除非假设没有向错误通道抛出错误事件

我们在连接异常的情况下进行了最大尝试,然后我们不知道它是否已从该连接故障中恢复

这会在更新已启动适配器的实际状态时造成一些困难

谢谢。

您可以使用


创建
AbstractMessageSourceAdvice
的子类。如果调用
afterReceive()
方法,则表示操作成功(无论轮询是否实际产生消息)。

成功启动适配器,适配器的
isRunning()
true
。但这仅表示轮询器正在运行,不管投票是否成功。谢谢你的投入。我可以看到轮询器调用的方法,但是如何识别哪个适配器,我可以在建议链中使用header enricher,并且该方法在子类中可用,这样我就可以在正确的适配器上调用状态。正如阿泰姆所指出的,IMAPIDDLE将如何工作。@阿泰姆比兰-他没有使用空闲适配器:“…适配器,如带轮询器的Imap…”@SONU131在
afterReceive()
方法中,源参数是
MessageSource
;您可以使用
getComponentName()
(将源代码强制转换为
NamedComponent
)来标识它,这将是适配器的bean名+
。源代码
。是的,如果您愿意,您可以在该方法中使用消息生成器添加头。@GaryRussell,我们使用所有三种类型的可用适配器,包括IMAP-IDLE。