Lista de verificaciones en despliegues
Lista de cosas a tener en cuanta cuando vayas a alojar un bot grande.
Puede que estes interesado en nuestras guías para alojar un bot. Mira Alojamiento / Tutoriales en el principio de la página para ver algunas de las plataformas que ya tienen guías dedicadas.
Errores
- Instala un manejador de errores con
bot
(long polling) o en tu web framework (webhooks)..catch - Usa
await
en todas las promesas e instala linting, con reglas que obliguen a esto, así nunca te olvidas.
Envío de mensajes
- Envía ficheros por ruta o
Buffer
en vez deStream
,o al menos estate seguro de que conoces las trampas. - Usa
bot
como un manejador alternativo para reaccionar a todas las consultas de devolución de llamada..on("callback _query: data") - Utilice el plugin
auto
para manejar automáticamente los errores de espera.-retry
Escalando servidores
Esto depende del tipo de despliegue.
Long Polling
- Usa grammY runner
. - Usa
sequentialize
con el mismo id de sesión que tu middleware de sesión. - Revise las opciones de configuración de
run
(referencia de la API) y asegúrese de que se ajustan a sus necesidades, o incluso considere la posibilidad de componer su propio corredor a partir de sources y sinks. Lo principal a tener en cuenta es la carga máxima que quiere aplicar a su servidor, es decir, cuántas actualizaciones pueden procesarse al mismo tiempo. - Considere implementar un apagado gradual para parar tu bot cuando tu quieres terminar con él (e.j. cambiar a una nueva versión).
Webhooks
- Asegúrese de no realizar ninguna operación de larga duración en su middleware, como las transferencias de archivos de gran tamaño. Esto lleva a errores de tiempo de espera para los webhooks, y el procesamiento de actualizaciones duplicadas, ya que Telegram reenviará las actualizaciones no reconocidas. Considere la posibilidad de utilizar un sistema de cola de tareas en su lugar.
- Familiarícese con la configuración de
webhook
(referencia de la API).Callback - Si cambiaste la opción
get
por la de tu sesión, usaSession Key sequentialize
con la misma función de resolución de claves de sesión que su middleware de sesión. - Si se ejecuta en una plataforma sin servidor o de autoescalado, establezca la información del bot para prevenir excesivas llamadas
get
.Me - Considere utilizar webhook replies.
Sesiones
- Considere usar
lazy
explicadas aquí.Sessions - Use la opción
storage
para configurar su adaptador de almacenamiento, de lo contrario todos los datos se perderán cuando el proceso del bot se detenga.
Tests
Escribe tests para tu bot. Esto se puede hacer con grammY así
- Simular las peticiones salientes de la API utilizando funciones de transformación.
- Define y envía ejemplos de actualización a tu bot via
bot
(referencia API). Considere inspirarse en estos ejemplos proporcionados por el equipo de Telegram..handle Update
Contribuye al framework de testing.
Aunque grammY proporciona lo necesario para empezar a escribir tests, sería muy útil tener un framework para los bots. Este es un territorio novedoso, tales frameworks no existen en gran medida. ¡Esperamos tus contribuciones!.