Empresas
Empleos
  • Sobre nosotros
  • Soluciones
    • Publicación de vacantes
      Publica tu vacante y recibe candidatos calificados en 48h.
    • Evaluación de candidatos
      500+ pruebas técnicas y psicológicas, más anti-fraude.
    • Headhunting
      Búsqueda ejecutiva a la medida de principio a fin.
    • Nómina + EOR
      Dispersión de nómina y EOR en más de 15 países de LATAM.
  • Precios
  • Empleos

0

759
Vistas
Enviar un mensaje en una marca de tiempo específica en Discord js

Soy nuevo en discord js y trato de hacer que mi bot envíe un mensaje en un momento específico (establecido a través de la marca de tiempo).

 client.on('ready', function(e) { console.log(`Logged in as ${client.user.tag}!`) let scheduledMessage = new cron.CronJob('0 10 15 * * *', () => { const guild = client.guilds.cache.get('ID'); const channel = client.channels.cache.get('ID'); const exampleEmbed = new MessageEmbed() .setColor('#ebdc05') .setTitle('Another ten minutes') channel.send({ embeds: [exampleEmbed] }); }); scheduledMessage.start() });

Encontré este método que envía un mensaje a las 15:10:00. Mi problema es que necesitaría que el bot enviara el mensaje cada 31 horas.

También encontré el método para escribir '0 0 */31 * * *' en lugar de '0 10 15 * * *'. Y eso funciona, cada 31 horas se enviaría un mensaje, pero me temo que mi bot a veces puede enviar el mensaje un poco después de la marca de las 31 horas y simplemente sumar segundos y minutos tras el tiempo, que en algún momento envía el mensaje a las 15:12:00 o algo así.

Así que se me ocurrió la idea de simplemente hacer una marca de tiempo y agregar la hora para tener siempre las 31 horas, luego dejar que el bot envíe el mensaje en la marca de tiempo exacta. Lamentablemente, no encontré nada a ese problema.

¿Es eso posible?


Editar: la variante de marca de tiempo sería útil porque puedo restar y agregar tiempo muy fácilmente y también mostrarlo en una inserción.

about 4 years ago · Juan Pablo Isaza
1 Respuestas
Responde la pregunta

0

El objetivo de la biblioteca cron que está utilizando es que puede decirle explícitamente los minutos y segundos, en su caso, 0.

No acumulará errores. A menos que esté muy rota, la biblioteca cron hará las cosas de "averiguar la próxima marca de tiempo" por usted.

La cadena cron 0 0 */31 * * * significa "Cada 31 horas, cuando la hora parece XX:00:00". Por lo tanto, nunca se ejecutará a las 15:12:00 oa las 15:10:00. Has dicho "corre en este minuto y segundo exactos", así que lo hará.

Descargo de responsabilidad: intenté leer el código de https://github.com/kelektiv/node-cron para confirmarlo yo mismo, pero es bastante complicado. https://github.com/node-cron/node-cron/tree/master/src fue más fácil de leer y definitivamente verifica la marca de tiempo cada segundo.

about 4 years ago · Juan Pablo Isaza Denunciar
Responde la pregunta
Encuentra empleos remotos

¡Descubre la nueva forma de encontrar empleo!

Top de empleos
Top categorías de empleo
Empresas
Publicar vacante Precios Comercial
Legal
Términos y condiciones Política de privacidad
© 2026 PeakU Inc. All Rights Reserved.
Andres GPT
Recomiéndame algunas ofertas
Necesito ayuda