Maison > Questions et réponses > le corps du texte
La tâche était initialement exécutée à 1 heure du matin tous les jours du lundi au vendredi. Après avoir vérifié le journal, j'ai constaté qu'elle était exécutée à 20h00 le dimanche. Pour connaître les raisons possibles, le serveur est un processeur monocœur.
Supplémentaire : il y a deux AB dans ma classe de tâches planifiées. Tâches planifiées, la tâche A est exécutée à 13 heures du lundi au vendredi (@Scheduled(cron = "0 0 1 ? MON-FRI"), la tâche B est exécuté à 3 heures tous les jours (@Scheduled(cron = "0 0 3 ? * ")), vérifiez le journal et constatez que du lundi au vendredi, la tâche A est exécutée en premier, puis la tâche B, c'est-à-dire B est exécutée sans attendre 15 heures ; quand nous sommes samedi et dimanche, la tâche B est exécutée à 15 heures, mais la tâche A a été exécutée à 20 heures le dimanche. . .
过去多啦不再A梦2017-05-17 10:04:53
Je suppose que vous n'avez pas spécifié la taille du pool de la tâche planifiée, donc par défaut toutes les planifications partagent un seul thread. Vous devez préciser la taille de la piscine du planning
xml
<task :annotation-driven scheduler ="myScheduler" />
<task :scheduler id ="myScheduler" pool-size ="10" />
haricot
@Bean(destroyMethod = "shutdown")
public Executor taskScheduler() {
return Executors.newScheduledThreadPool(10);
}
Ajout :
Partager un fil de discussion entraînera de sérieux problèmes. Si la tâche A n'est pas exécutée dans les 2 heures, le temps d'exécution de la tâche B sera retardé voire non exécuté.