Empresas
Empregos
  • Sobre nós
  • Soluções
    • Publicação de vagas
      Publique sua vaga e receba candidatos qualificados em 48h.
    • Avaliações de candidatos
      Mais de 500 testes técnicos e psicológicos, mais anti-fraude.
    • Headhunting
      Busca executiva personalizada do início ao fim.
    • Folha de Pagamento + EOR
      Dispersão de folha e EOR em mais de 15 países da LATAM.
  • Preços
  • Empregos

0

748
Visualizações
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 Respostas
Responde à pergunta

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 Relatório
Responde à pergunta
Encontrar trabalhos remotos

Descubra a nova forma de encontrar um emprego!

melhores empregos
Principais categorias de trabalho
Empresas
Postar vaga Preços Comercial
Jurídico
Termos e Condições Política de privacidade
© 2026 PeakU Inc. All Rights Reserved.
Andres GPT
Recomende algumas ofertas para mim
Preciso de ajuda