默认情况下轮询器使用哪个执行器?
which Executor are Pollers using by default?
Inside Spring-Integration 源代码,如果 none 明确指定,轮询器(例如固定延迟轮询器)从哪里获得它们的默认执行程序? (默认执行器是否在轮询器之间共享?)
(我问的原因是因为#1 我在浏览源代码时遇到了一些麻烦,#2 我有 2 个消息队列由 2 个没有指定执行者的轮询器轮询;第一个队列触发了一个长 运行 似乎阻止第二个轮询器触发的任务)
非常感谢您的时间和专业知识。
最好的问候
我觉得有一点误解:轮询是由调度程序完成的。执行者没有在未来安排任务的选项。
另一个问题是正确的:应用程序上下文中有一个共享任务调度程序,它还不能针对每个实例。但是我猜你使用的是 Spring Boot,它默认带有 single-threaded 调度程序。考虑增加它的线程池。
您确实也可以为每个队列通道配置一个特定的执行器,以将任务转移到单独的三者中,而不会使调度程序开销过大。
Inside Spring-Integration 源代码,如果 none 明确指定,轮询器(例如固定延迟轮询器)从哪里获得它们的默认执行程序? (默认执行器是否在轮询器之间共享?)
(我问的原因是因为#1 我在浏览源代码时遇到了一些麻烦,#2 我有 2 个消息队列由 2 个没有指定执行者的轮询器轮询;第一个队列触发了一个长 运行 似乎阻止第二个轮询器触发的任务)
非常感谢您的时间和专业知识。
最好的问候
我觉得有一点误解:轮询是由调度程序完成的。执行者没有在未来安排任务的选项。
另一个问题是正确的:应用程序上下文中有一个共享任务调度程序,它还不能针对每个实例。但是我猜你使用的是 Spring Boot,它默认带有 single-threaded 调度程序。考虑增加它的线程池。
您确实也可以为每个队列通道配置一个特定的执行器,以将任务转移到单独的三者中,而不会使调度程序开销过大。