Bots de Discord

Hacer que un bot haga algo con un temporizador

Revisado el 6 de septiembre de 2026 2 min de lectura

Tarde o temprano tu bot necesita hacer algo sin que se lo pidan: publicar un mensaje diario, limpiar un canal viejo, comprobar un servicio externo. Todas las librerías lo ponen fácil, y los tres errores habituales van todos de qué pasa cuando el bot no está corriendo.

Las herramientas

EnfoqueBueno para
El bucle de tareas de la propia libreríaCualquier cosa a intervalo fijo. Arranca y para con el bot.
Un programador estilo cron«Todos los días a las nueve» en vez de «cada 24 horas».
Una tarea del panel ejecutando un comandoCosas que deben pasar aunque el proceso del bot no esté sano.

Los tres errores

  1. Confundir un intervalo con un reloj

    «Cada 86400 segundos» va derivando: cuenta desde que arrancó el bot, así que un reinicio a las tres de la tarde mueve tu publicación de las nueve a las tres para siempre. Si la hora importa, usa un programador que entienda de horas, no de intervalos.

  2. No saber en qué zona horaria estás

    Un servidor no corre necesariamente en tu hora local. «Las nueve de la mañana» son las nueve en algún sitio; comprueba en cuál, y ponlo explícito en vez de descubrirlo por la mañana.

  3. Perder la ejecución que tocaba mientras estaba caído

    Un bot que estaba reiniciándose a las nueve simplemente se salta las nueve. Si una tarea no se puede saltar, guarda la última ejecución correcta y comprueba al arrancar si hay alguna pendiente.

Una tarea que hable con Discord en bucle se va a llevar un límite de peticiones

Un trabajo de limpieza que borra mensajes de uno en uno, o un anuncio que publica en cincuenta canales en un bucle apretado, choca con los límites del artículo correspondiente. Agrupa donde la API lo permita, y espacia lo que no puedas agrupar: la tarea no es urgente, así que deja que sea lenta.

Registra cada ejecución, incluso las aburridas

«Tarea diaria completada a las 09:00» es una línea y responde al instante y para siempre a «¿se ejecutó?». Sin ella, la única prueba de que una tarea corrió es si su efecto se ve, que no es lo mismo en absoluto.

Cómo saber que ya está

Pon la tarea a un minuto de ahora, míralo dispararse, y luego reinicia el bot y comprueba que sigue disparándose a su hora y no un minuto después del arranque.