【发布时间】:2018-04-12 09:50:54
【问题描述】:
我有多个生产者和单个消费者的阻塞队列(这足以对项目进行后期处理)。
生产者按计划开始,将任务发送到执行器池,然后由工作人员将任务添加到队列中。
关于如何启动消费者线程的问题?
现在我有 @EventListener (SpringBoot),它在启动时发送到 singleThreadExecutorPool 方法,该方法在无限循环中为队列提供服务,对于这种情况,也许存在更好的解决方案。看起来很常见的消费队列模式。
【问题讨论】:
-
为什么不直接让你的生产者直接喂给消费者执行者呢?
-
我有多个消费者来平滑波动很大的 IO 和网络服务延迟。对我来说,管理一个消费者比管理几个消费者容易得多。但是,是的,我认为您的方法也可能很好,您的意思是在获得结果后生产者等待(一个)消费者会接受它?我考虑了一下,但决定队列,因为我可以根据队列的实现实现一些逻辑(和统计监控)(是的,也许不是最好的方法,这就是我在这里提问的原因:D)
-
或者你的意思是在消费者中实现内部队列?
-
检查这篇文章是否有用:stackoverflow.com/questions/2332537/…
标签: java spring multithreading architecture blockingqueue