- Expédié
- 23 septembre 2026 à 07:50 UTC
- Auteur
- Kamo
- Commite
- 90509f4
Le thread unique de l'ordonnanceur par défaut de Spring est partagé par chaque méthode «Scheduleded dans ce service» l'impulsion de campagne d'une seconde, la tique du moteur goutte-à-goutte et la pulsation de la campagne de ReminderScheduler 60-secondes balayage d'une douzaine d'autres. processRemindersLocked envoyé chaque courriel/popup/ sms, un appel de blocage à la fois, sur ce fil partagé: un balayage avec plusieurs rappels justes détenus Il, et tout le reste prévu sur la nacelle, aussi longtemps que tout le lot a pris l'envoi. L'envoi de chaque rappel s'étend désormais sur une petite piscine à fil fixe (4 travailleurs, nommés calendrier-rendement), le même principe DripEngine s'applique déjà en remettant l'ensemble de sa carte jusqu'à un fil de travail - appliqué ici par rappel au lieu de perpasser, puisque la partie lente est la le blocage SMTP/notification envoyer plutôt que le balayage DB lui-même. Le fil d'appel attend toujours le lot entier (en bordé d'une temporisation de vidange des années 90) avant le processusRemindersLocked return, qui est ce qui maintient le bail "email-calendar-reminders" couvrant la totalité du laissez-passer: un bail libéré pendant Les envois étaient encore en vol ailleurs laisseraient une autre doser ramasser les meilleurs rappels et envoyer deux fois. Ce qui change, c'est seulement le temps d'attente - jusqu'à quatre fois moins, jamais pire que l'ancienne boucle séquentielle. échouer sans le changement: il prouve que chaque envoi s'effectue sur le le pool plutôt que le fil d'appel, et que l'appel bloque toujours jusqu'à ce que chaque envoi ait fini.
