- Se descapó
- 23 de septiembre de 2026 a las 7:50 UTC
- Autor
- Kamo
- Compromit
- 90509f4
El hilo de un solo programador predeterminado de Spring es compartido por cada método programado en este servicio. el pulso de campaña de 1 segundo, la garrafal del motor de goteo, y el propio ReminderSchedulerService de 60 segundos barrido entre aproximadamente una docena de otros.procesoReminadoresEnservadoEnvió el correo electrónico/popup/ sms, una llamada de bloqueo a la vez, en ese hilo compartido: un barrido con varios recordatorios de cuotas celebradas y todo lo demás programado en la cápsula, durante el tiempo que todo el lote tardó en enviar. El envío de cada recordatorio ahora funciona en una pequeña piscina de hilo fijo (4 trabajadores, nombrados calendario-recordatorio-sender), el mismo principio que DripEngine ya aplica entregando todo su pase fuera de un hilo obrero aplicado aquí por recordatorio en lugar de por pase, ya que la parte lenta es la bloquear el envío SMTP/notificación en lugar del barrido DB en sí. El hilo conductor aún espera todo el lote entero (vincado por un tiempo de fuga de 90s) antes de procesoRemindersRemindersReck devuelve, que es lo que mantiene el arrendamiento de 'email-calendar-reminders' cubriendo todo el pase: un contrato de arrendamiento liberado mientras Los envíos todavía estaban en vuelo a otro lugar dejaría que otra vaina recogiera los recordatorios de los derechos de pago y enviaría ellos dos veces. Lo que cambia es sólo cuánto tiempo tarda esa espera hasta cuatro veces menos, nunca peor que el viejo bucle secuencial. **************** falla sin el cambio: prueba que cada envío carreras en el piscina en lugar del hilo conductor, y que la llamada todavía bloquea hasta que cada envío ha terminado.
