2016-11-30 15 views
0

У меня есть бот с командой, которая позволяет пользователю вводить сообщение, разделенное тире, а затем определенное время, это затем передается боту, а бот напоминает пользователю сообщение с указанным количеством времени прошло.Будет ли setTimeout использовать свободные часы Heroku?

function reminder(msg) { 
    const message = msg.content.replace(this.prefix+this.name+" ",""); 
    const params = message.split("-"); 
    setTimeout(() => { 
     msg.channel.sendMessage(params[0]); 
    }, (parseInt(params[1])*1000)); 
} 

Я намерен запустить этот бот на Heroku, но так как я просто подросток, и это хобби для меня, я должен использовать свободные часы Dyno, что Heroku дает мне каждый месяц. Если кто-то использует эту функцию бота, механизм синхронизации setTimeout будет поддерживать мои динамики и использовать свободные часы dyno?

Edit: Если вы считаете, что есть более свободная альтернатива Heroku, что любой из вас знают о том, что было бы здорово :)

+0

Да, я так считаю. если вы еще этого не сделали, вы можете получить бесплатный сервер в течение года с amazon aws, возможно, он лучше подходит для вашего приложения. – xShirase

ответ

0

Да и нет.

Давайте предположим, что логика в SetTimeout будет работать после каждых менее 30 минут, так ДА сервер Heroku будет еще бодрствует, так что это будет с помощью свободных часов Dyno.

Но если сообщение будет отправлено после более чем 30 минут, скажем, один час, так что, если нет каких-либо запросов, поражающие сервер в этот период, ваш сервер будет спать после 30м бездействия, так NO как если нет входящих запросов.

Подробнее о Хероку бесплатных динозавров, here.

+0

Если экземпляр начинает спать, 'setTimeout' никогда не будет выполнен. –

+0

Да, вы правы, @DamienMATHIEU, поэтому, чтобы избежать этого, и продолжайте работать 24/7, проверьте следующее: http://stackoverflow.com/questions/40646858/avoid-heroku-server-from-sleeping Damo –

+0

Так что, на самом деле, функция напоминания не работает, если я не буду всегда запускать бота? –

0

Вы можете попробовать это: http://neversleep.ml

Он наблюдает ваш сервер и будет посылать уведомления по электронной почте, если он выходит из строя.

 Смежные вопросы

  • Нет связанных вопросов^_^