Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/spring/11.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/android/205.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 使用弹簧&x27;具有特定执行器的s@Scheduled批注_Java_Spring_Spring Boot_Quartz Scheduler - Fatal编程技术网

Java 使用弹簧&x27;具有特定执行器的s@Scheduled批注

Java 使用弹簧&x27;具有特定执行器的s@Scheduled批注,java,spring,spring-boot,quartz-scheduler,Java,Spring,Spring Boot,Quartz Scheduler,如何让Spring调度方法使用特定的执行器运行 例如,这是我的spring调度程序方法之一 @Scheduled(fixedRate=1000) public void scheduleJobs(){ doThese(); } 下面是我的Java配置中定义的两个执行器: @Bean public Executor taskScheduler() { ThreadPoolTaskScheduler t = new ThreadPoolTaskScheduler(); t.

如何让Spring调度方法使用特定的执行器运行

例如,这是我的spring调度程序方法之一

@Scheduled(fixedRate=1000)
public void scheduleJobs(){
    doThese();
}
下面是我的Java配置中定义的两个执行器:

@Bean
public Executor taskScheduler() {
    ThreadPoolTaskScheduler t = new ThreadPoolTaskScheduler();
    t.setPoolSize(2);
    t.setThreadNamePrefix("taskScheduler - ");
    t.initialize();
    return t;
}

@Bean
public Executor newTaskScheduler() {
    ThreadPoolTaskScheduler t = new ThreadPoolTaskScheduler();
    t.setPoolSize(2);
    t.setThreadNamePrefix("newTaskScheduler - ");
    t.initialize();
    return t;
}
当调度方法运行时,我可以看到它正在使用
taskScheduler
executor。如何告诉它使用
newTaskScheduler
executor运行?

这方面的内容非常详尽


您需要实施一个
调度配置器
,以微调需要使用的
执行器。

尚不支持@Scheduled的执行器资格

@Configuration
@EnableScheduling
public class AppConfig implements SchedulingConfigurer {

 @Override
 public void configureTasks(ScheduledTaskRegistrar taskRegistrar) {
  taskRegistrar.setScheduler(taskScheduler());
 }

 @Bean
 public Executor taskScheduler() {
  ThreadPoolTaskScheduler t = new ThreadPoolTaskScheduler();
  t.setPoolSize(2);
  t.setThreadNamePrefix("taskScheduler - ");
  t.initialize();
  return t;
 }


}
提及-
以下简单代码似乎提供了所需的功能

@Configuration
@EnableScheduling
public class SchedulerConfig {

  @Bean
  public ThreadPoolTaskScheduler threadPoolTaskScheduler(){
      ThreadPoolTaskScheduler threadPoolTaskScheduler = new ThreadPoolTaskScheduler();
      threadPoolTaskScheduler.setPoolSize(5);
      threadPoolTaskScheduler.setThreadNamePrefix("ThreadPoolTaskScheduler");
      return threadPoolTaskScheduler;
  }
}

根据指南

您能更具体一点吗?我在文档中找不到任何指示如何在单独的执行器上运行
@Scheduled
方法的内容。正如@Gaurav所指出的,恐怕这是不可能的,我的回答似乎并没有回答你的问题。如果您希望能够按照计划的方法对执行器进行微调,目前还不可能,但确实存在。我的答案是关于自定义所有计划方法使用的执行器。上面评论中的问题已作为副本关闭。活动和开放的票证现在是:该问题已作为副本关闭。开放门票现为: