Maison > Java > javaDidacticiel > Comment résoudre le problème des tâches planifiées qui ne sont pas exécutées dans les délais prévus dans Springboot

Comment résoudre le problème des tâches planifiées qui ne sont pas exécutées dans les délais prévus dans Springboot

WBOYWBOYWBOYWBOYWBOYWBOYWBOYWBOYWBOYWBOYWBOYWBOYWB
Libérer: 2023-05-13 21:10:12
avant
2547 Les gens l'ont consulté

@schedule annotation est une annotation de tâches planifiées couramment utilisée dans Springboot. Elle est simple et pratique à utiliser. Cependant, s'il y a de nombreuses tâches planifiées, ou si certaines tâches prennent beaucoup de temps, cela affectera l'exécution d'autres. tâches planifiées, car la planification est monothread par défaut. Oui, lorsqu'une tâche est exécutée, les autres tâches ne peuvent pas être exécutées. La solution consiste à reconfigurer la planification et à la modifier en exécution multithread. 🎜🎜#

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));
  }
}
Copier après la connexion

Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!

Étiquettes associées:
Déclaration de ce site Web
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn
Tutoriels populaires
Plus>
Derniers téléchargements
Plus>
effets Web
Code source du site Web
Matériel du site Web
Modèle frontal