我无法在文档或现有问题中找到必要的信息,这就是为什么我自己创建一个(我不能在类似的问题下提问)帖子还没有。)
我需要知道的是Spring任务执行器和调度程序之间的关系。 我目前的配置如下:
[['a','b'],['c','d']]
我不确定它是如何工作的。 "谁"确实运行我的任务?它是调度程序,因为任务是和他一起安排的吗?或者调度程序只创建它们,放入队列并且激励器运行它们?
如果没有,并且正在运行的是调度程序,我必须在特定类及其方法之上创建注释,以便它们可以由执行程序启动?
没有明确解释它们如何相关,在文档中,也不是" pool-size",但它至少可以在其他问题中找到。如果运行任务的调度程序是此配置中的执行程序冗余吗?
答案 0 :(得分:3)
您的查询在文档中得到了很好的解决(参考this section了解完整的行为方面)
回答您的具体问题
“谁”确实执行我的任务?它是调度程序,因为任务是和他一起安排的吗?或者调度程序只创建它们,放入队列并且激励器运行它们?
scheduler
命名空间创建了一个ThreadPoolTaskScheduler
实例,它能够自己处理任务执行(实现AsyncTaskExecutor
)。因此,调度程序在没有执行程序帮助的情况下自行执行任务。
没有明确解释它们的相关性
调度程序和执行程序之间没有任何关系,除了它们都实现AsyncTaskExecutor
意味着异步执行任务这一事实(在旁注 - executor命名空间创建一个实例ThreadPoolTaskExecutor
)
两者都不适用于“游泳池大小”
此section将为您提供相关详细信息。
如果运行任务的调度程序是此配置中的执行程序冗余吗?
仅当您计划在应用程序中安排计划任务时才会进行冗余,否则它将用于标记为@Async
的任何任务。
希望这可以回答您的问题,如果需要更多信息,请在评论中告知。