Spring integration 我们总是需要两个线程线程的线程屏障工作?

Spring integration 我们总是需要两个线程线程的线程屏障工作?,spring-integration,pthread-barriers,Spring Integration,Pthread Barriers,想要检查线程屏障是否是解决以下问题的正确方法:必须在特定时间间隔内连续轮询DB 2-3次,以检查传入事件是否有触发器,然后在Spring集成项目中最终超时 另外,我们是否总是需要2个线程才能使线程屏障工作?挂起线程和触发器线程。BarrierMessageHandler基于以下逻辑: Message<?> releaseMessage = syncQueue.poll(this.timeout, TimeUnit.MILLISECONDS); Message releaseMess

想要检查线程屏障是否是解决以下问题的正确方法:必须在特定时间间隔内连续轮询DB 2-3次,以检查传入事件是否有触发器,然后在Spring集成项目中最终超时


另外,我们是否总是需要2个线程才能使线程屏障工作?挂起线程和触发器线程。

BarrierMessageHandler
基于以下逻辑:

Message<?> releaseMessage = syncQueue.poll(this.timeout, TimeUnit.MILLISECONDS);
Message releaseMessage=syncQueue.poll(this.timeout,TimeUnit.ms);
因此正在阻塞当前线程


因此,要释放该块,您肯定需要另一个线程,它为
SynchronousQueue

BarrierMessageHandler
基于以下逻辑提供值:

Message<?> releaseMessage = syncQueue.poll(this.timeout, TimeUnit.MILLISECONDS);
Message releaseMessage=syncQueue.poll(this.timeout,TimeUnit.ms);
因此正在阻塞当前线程


因此,要释放该块,您肯定需要另一个线程为该
SynchronousQueue

提供值,谢谢!当我调用DB检查状态时,我可以使用线程屏障来暂停传入线程进行预定义的等待吗。如果DB的状态为true,则应触发释放else,等待屏障超时,然后重试。我可以将传入的消息和DB结果都绑定到一个关联。但请考虑使用<代码> RequestHandlerRetryAdvice <代码>,用于DB调用服务激活器,而不是<代码>屏障>代码>嗨!看起来有更简单的方法。我们可以检查DB并使用Delayer根据DB响应延迟或推送消息。我们可以在标题中保存值,并使用路由器根据这些标志进行处理。谢谢!当我调用DB检查状态时,我可以使用线程屏障来暂停传入线程进行预定义的等待吗。如果DB的状态为true,则应触发释放else,等待屏障超时,然后重试。我可以将传入的消息和DB结果都绑定到一个关联。但请考虑使用<代码> RequestHandlerRetryAdvice <代码>,用于DB调用服务激活器,而不是<代码>屏障>代码>嗨!看起来有更简单的方法。我们可以检查DB并使用Delayer根据DB响应延迟或推送消息。我们可以在报头中保存值,并使用路由器根据这些标志进行处理。