Solo el primero es lo que la gente suele querer decir, y solo el tercero es sorprendente.
La configuración se recarga por sí sola de todos modos
El gateway sondea cambios de base de datos.reload existe porque el sondeo va hasta treinta segundos
por detrás, que es demasiado lento cuando estás mirando.
El crédito no es configuración
reload no lo toca, y este es el que pilla a la gente.
El gateway reserva crédito en bloques. Mueve dinero de account_balance.balance a
reserved y mantiene el bloque en memoria. Eso es lo que mantiene el camino del mensaje fuera de la base de datos.
Así que corregir un saldo a mano no toma efecto hasta que el bloque ya entregado se
agote. Una cuenta puesta a cero sigue enviando.
credit release devuelve el resto no gastado de cada bloque a balance y escribe una fila RELEASE
en el libro mayor, así que el siguiente mensaje reserva contra la cifra corregida.
El mismo comando tras un crash
Unkill -9 deja varado lo que estaba reservado. El dinero está aparcado, no perdido. balance + reserved
sigue cuadrando. Y credit release es como vuelve.
Un apagado limpio hace esto por sí mismo.
Lo que un reload no hace
- No reinicia workers. Un worker que falló al hacer bind reintenta en su propio horario; un listener que no pudo tomar su puerto reintenta en el siguiente sondeo o reload sin necesidad de un reinicio.
- No limpia estado de runtime establecido por
disable,suspendohold. Esos están deliberadamente fuera de la configuración para que puedan actuar inmediatamente. Y revierten al reiniciar en lugar de al recargar. - No cambia lo que una sesión conectada puede hacer. Un cambio de tasa se aplica a sesiones SMPP ya conectadas en unos 200 ms; no requiere que rehagan bind.
Relacionado
Control de workers
Los verbos que actúan inmediatamente en lugar de en un sondeo.
Crédito prepago
Bloques, reservas, y por qué el saldo va con retraso.