Spring Integration SLA选项

时间:2018-10-04 11:30:28

标签: java spring-boot spring-integration spring-integration-dsl

我有一个springboot集成应用程序,它基于

之类的参数来监听目录中的文件。
startTimeScan
endTimeScan
Days to scan 

我使用的Cron表达式可以正常工作,但是现在我面临的挑战是,如果到那时文件还没有到,那么某些客户端基本上将有SLA cutoff时间,这将引发警报。

Spring Integration中是否有提供这种功能的选项?

1 个答案:

答案 0 :(得分:1)

是的,AbstractMessageSourceAdvice实现可用于这种逻辑。您只需要实现其afterReceive(Message<?> result, MessageSource<?> source)并检查null的消息。一段时间后,您会发出警报。

仅在轮询任务中执行此建议的问题,因此仅在您的cron提到的间隔内执行。不幸的是,没有其他方法可以对丢失的事件做出反应。

https://docs.spring.io/spring-integration/docs/5.0.8.RELEASE/reference/html/messaging-channels-section.html#conditional-pollers