KamoCRM

Le rappel de calendrier envoie le passage du thread d'ordonnancement partagé

PerformanceEmailService
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.

Tous les changements

Comme ce que tu vois expédier ?

Tout cela arrive dans votre espace de travail par lui-même. Commencez sur le plan gratuit et relisez cette page dans un mois.

Commencez gratuitement pour toujoursPrix de visualisation