Тайм-аут загрузки Heroku R10 + Node.js Cron

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

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

Я немного погуглил и выяснил, что это обычно происходит, когда вы пытаетесь указать явный порт вместо использования 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 * * * * *»).

Вот мой профайл:

web: node index.js -p $PORT

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


person robert.vinluan    schedule 01.06.2015    source источник


Ответы (1)


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

person robert.vinluan    schedule 01.06.2015