Rumah  >  Artikel  >  Java  >  Bagaimana untuk menyelesaikan masalah tugas berjadual tidak dilaksanakan mengikut jadual dalam springboot

Bagaimana untuk menyelesaikan masalah tugas berjadual tidak dilaksanakan mengikut jadual dalam springboot

WBOY
WBOYke hadapan
2023-05-13 21:10:122414semak imbas

@schedule anotation ialah anotasi tugas berjadual yang biasa digunakan dalam springboot. Ia adalah mudah dan mudah untuk digunakan, namun, jika terdapat banyak tugasan berjadual, atau beberapa tugasan sangat memakan masa, ia akan menjejaskan pelaksanaan jadual lain. tugasan, kerana jadual adalah satu-utas secara lalai , apabila tugasan dilaksanakan, tugasan lain tidak boleh dilaksanakan

import org.springframework.boot.autoconfigure.batch.BatchProperties;
import org.springframework.context.annotation.Configuration;
import org.springframework.scheduling.annotation.Scheduled;
import org.springframework.scheduling.annotation.SchedulingConfigurer;
import org.springframework.scheduling.config.ScheduledTaskRegistrar;
import java.lang.reflect.Method;
import java.util.concurrent.Executors;
@Configuration
public class ScheduleConfig implements SchedulingConfigurer {
  @Override
  public void configureTasks(ScheduledTaskRegistrar taskRegistrar) {
    Method[] methods = BatchProperties.Job.class.getMethods();
    int defaultPoolSize = 3;
    int corePoolSize = 0;
    if (methods != null && methods.length > 0) {
      for (Method method : methods) {
        Scheduled annotation = method.getAnnotation(Scheduled.class);
        if (annotation != null) {
          corePoolSize++;
        }
      }
      if (defaultPoolSize > corePoolSize)
        corePoolSize = defaultPoolSize;
    }
    taskRegistrar.setScheduler(Executors.newScheduledThreadPool(corePoolSize));
  }
}

Atas ialah kandungan terperinci Bagaimana untuk menyelesaikan masalah tugas berjadual tidak dilaksanakan mengikut jadual dalam springboot. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

Kenyataan:
Artikel ini dikembalikan pada:yisu.com. Jika ada pelanggaran, sila hubungi admin@php.cn Padam