Le planificateur ne s'exécute pas dans le Printemps de Démarrage
J'ai créé un Ressort de Démarrage de l'application. J'ai configuré ma classe qui contient la méthode de planification de la startService()
.
Ci-dessous mon code :
Classe De Service :
package com.mk.service;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.scheduling.annotation.Scheduled;
import org.springframework.stereotype.Component;
import com.mk.envers.model.BossExtChange;
import com.mk.envers.model.BossExtChangeRepository;
@Component
public class EnverseDemoService {
@Autowired
BossExtChangeRepository bossExtChangeRepository;
@Scheduled(fixedRate = 30000)
public void startService() {
System.out.println("Calling startService()");
BossExtChange bossExtChange = bossExtChangeRepository.findById(5256868L);
System.out.println("bossExtChange.getDescription()--->"+bossExtChange.getDescription());
System.out.println("Ending startService()");
}
}
Classe Principale :
import org.springframework.boot.SpringApplication;
import org.springframework.boot.autoconfigure.SpringBootApplication;
import org.springframework.context.annotation.PropertySource;
import org.springframework.scheduling.annotation.EnableScheduling;
@SpringBootApplication
@EnableScheduling
@PropertySource("classpath:application.properties")
public class EnverseDemoApplication {
public static void main(String[] args) {
SpringApplication.run(EnverseDemoApplication.class, args);
}
}
J'ai annoté de la classe comme @Component
et aussi la méthode que @Scheduled(fixedRate = 30000)
qui exécute en tant que planificateur. Mais lors de l'exécution de l'application, comme le Printemps de Démarrage le planificateur ne déclenche pas. La console d'afficher le message ci-dessous:
2016-02-03 10:56:47.708 INFO 10136 --- [ main] o.s.j.e.a.AnnotationMBeanExporter : Registering beans for JMX exposure on startup
2016-02-03 10:56:47.721 INFO 10136 --- [ main] com.mk.envers.EnverseDemoApplication : Started EnverseDemoApplication in 3.231 seconds (JVM running for 3.623)
2016-02-03 10:56:47.721 INFO 10136 --- [ Thread-2] s.c.a.AnnotationConfigApplicationContext : Closing org.springframework.context.annotation.AnnotationConfigApplicationContext@49e202ad: startup date [Wed Feb 03 10:56:44 IST 2016]; root of context hierarchy
2016-02-03 10:56:47.721 INFO 10136 --- [ Thread-2] o.s.j.e.a.AnnotationMBeanExporter : Unregistering JMX-exposed beans on shutdown
2016-02-03 10:56:47.736 INFO 10136 --- [ Thread-2] j.LocalContainerEntityManagerFactoryBean : Closing JPA EntityManagerFactory for persistence unit 'default'
Quelqu'un peut s'il vous plaît aidez-moi.
Supprimer
@PropertySource
comme cela est déjà chargé par défaut. Est le EnverseDemoApplication
dans la même ou dans un super paquet de EnverseDemoService
? (Vous avez omis la package
clause de sorte qu'il est difficile de le dire. ). Si sn est pas votre bean n'est pas ramassé et pas de planification/threads sera encore en vie.
OriginalL'auteur Mohith Kumar | 2016-02-03
Vous devez vous connecter pour publier un commentaire.
Peut-être vous pouvez résoudre ce problème en ajoutant la @ComponentScan annotation dans le fichier de configuration
OriginalL'auteur Federico Traiman
J'ai finalement été en mesure de résoudre le problème ci-dessus, j'ai changé l'ensemble de ma classe de service EnverseDemoService de
package com.mk.service;
àcom.mk.envers.service;
. C'est parce que si la configuration principal de la classe EnverseDemoApplication est présente dans le packagecom.mk.envers
. Toutes les autres classes de l'application de démarrage doit être dans le package qualifiant.Eg: com.mk.envers.*;
OriginalL'auteur Mohith Kumar