Business
Jobs
  • About Us
  • Solutions
    • Job Postings
      Post your job and receive qualified candidates in 48h.
    • Candidate Assessments
      500+ technical and psychological tests, plus anti-fraud.
    • Headhunting
      Tailor-made executive search from start to finish.
    • Payroll + EOR
      Payroll dispersal and EOR across 15+ LATAM countries.
  • Pricing
  • Jobs

0

747
Views
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 answers
Answer question

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 Report
Answer question
Find remote jobs

Discover the new way to find a job!

Top jobs
Top job categories
Business
Post vacancy Pricing Sales
Legal
Terms and conditions Privacy policy
© 2026 PeakU Inc. All Rights Reserved.
Andres GPT
Show me some job opportunities
There's an error!