你能为春季的计划任务指定不同的执行器吗



Spring对所有@Scheduled任务使用相同的执行器。默认情况下,它有1个线程,但您可以创建一个包含更多线程的自定义线程。

情况:我有两种类型的工作要安排:

  1. 长时间运行的后台作业:不一定需要准时启动,不希望它们同时运行,也绝对不希望每个作业同时运行一个以上(解决方案:使用有限线程池的固定延迟(
  2. 需要按计划运行的频繁、短时间运行的作业。(解决方案:与@Async一起使用固定速率(

问题:有限池上的慢速作业直接反对使用@Async运行其他作业理想情况下,我会有两个独立的执行人,我可以指派他们做一些类似的事情

@Scheduled(delayedRate=600000, executor="longRunningExecutor")@Scheduled(fixedRate=5000, executor="rightNowExecutor")

但我找不到任何支持这样的东西。

如何确保长时间运行的作业不会占用线程池并阻塞当前的作业?

答案似乎是"他们正在努力"https://github.com/spring-projects/spring-framework/issues/20818

最新更新