2015-06-01 2 views
0

Я пытаюсь разместить мой бот-сервер на Heroku, который чириканье раз в час. Но когда я пытаюсь развернуть, это дает мне эту ошибку:Heroku R10 Время ожидания загрузки + Node.js Cron

`Error R10 (Boot timeout) -> Web process failed to bind to $PORT within 60 seconds of launch` 

Я сделал некоторые Googling и выяснил, обычно это происходит, когда вы пытаетесь определить явный порт вместо использования process.env.$PORT, но я не уточняя какой-либо порты в моем коде, который в основном только это:

var CronJob = require('cron').CronJob; 
new CronJob('0 0 * * * *', function() { 
    //tweet once, once an hour 
    runTheBot(); 
}, null, true, 'America/New_York'); 

где runTheBot() делает несколько запросов API с помощью Twit.

Интересно, что если задание cron запускается чаще, чем 60 секунд, скажем один раз каждые 10 секунд ('*/10 * * * * *'), он отлично работает. Это даже работает, если я запускаю его раз в минуту ('0 * * * * *').

Вот мой PROCFILE:

web: node index.js -p $PORT 

Является Heroku не совместим с этой библиотекой хрон? Должен ли я использовать Heroku Scheduler вместо этого?

ответ

0

Я решил это, изменив тип процесса в профиле от web до worker. Я также должен был вручную увеличить динамику рабочих от 0 до 1, поскольку по какой-то причине Heroku установил его по умолчанию 0.

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