Рабочий Heroku выполнялся дважды, когда начинал (масштабировал) отчет об изменении состояния с начала до до и снова

У меня самое простое приложение для узлов. Нет планировщика.

Package.json:

"engines": {    "node": "10.X"  },

"dependencies": {    "dotenv": "^6.2.0",    "express": "^4.16.4"  }

PROCFILE:

web: node index.js ==> express hello world
worker: node domywork.js ==> console.log(The time)

код domywork.js:

const d = new Date();
console.log(`doing work ${d.toUTCString()}....`);

Описание:

Когда я масштабируюсь web=1 Все отлично. Когда я масштабируюсь worker=1 я получаю странное поведение (я не смог найти какой-либо четкой информации об этом, хотя вопросы близки к этой ситуации). Что я вижу в логах героку --tail это две последовательности строк журнала, которые сообщают о том, что ==> up ==> раздавлены и снова. И я получаю console.log(The time) дважды. Обычно через несколько минут он запускается снова.

Это вывод журнала:

2019-01-14T05: 21: 03.305114 + 00: 00 heroku [worker.1]: запуск процесса командой node domywork.js

2019-01-14T05:21:00.508617+00:00 приложение [api]: масштабировано до сети @1: свободный работник @1: бесплатно пользователем oren.nitzan@gmail.com

2019-01-14T05: 21: 03.995674 + 00: 00 heroku [worker.1]: состояние изменилось с начала до

2019-01-14T05:21:06.252942+00:00 heroku[worker.1]: состояние изменилось с до сбойного

2019-01-14T05:21:06.259465+00:00 heroku[worker.1]: состояние изменено с аварийного на стартовое

2019-01-14T05:21:06.127660+00:00 app[worker.1]: выполнять работу Понедельник, 14 января 2019 05:21:06 GMT.... ==> Примечание... это вывод 1!!!!

2019-01-14T05: 21: 06.235084 + 00: 00 heroku [worker.1]: процесс завершен со статусом 0

2019-01-14T05: 21: 08.651606 + 00: 00 heroku [worker.1]: запуск процесса командой node domywork.js

2019-01-14T05:21:09.337206+00:00 heroku[worker.1]: состояние изменилось с начала до

2019-01-14T05:21:11.468181+00:00 heroku[worker.1]: состояние изменено с до сбойного

2019-01-14T05: 21: 11.447 887 + 00: 00 heroku [worker.1]: процесс завершен со статусом 0

2019-01-14T05: 21: 11.370 Приложение 138+00:00 [worker.1]: выполнять работу Понедельник, 14 января 2019 05:21:11 GMT.... ==> Примечание!! Второй выход

==> Примечание!!! Примерно через 10 минут он снова работает!!

2019-01-14T05: 32: 31.031538 + 00: 00 heroku [worker.1]: состояние изменено с аварийного на начальное 2019-01-14T05:32:33.816219+00:00 heroku[worker.1]: запуск процесса с помощью команды node domywork.js

.... и так далее

Конкретные вопросы:

  1. Что именно происходит, когда динамо масштабируется? Я понимаю, что это запускает его рабочую (или веб) работу.

  2. Что такое последовательность здоровых состояний? Я считаю, что это должно быть "начало" и все.

  3. Что такое "раздавленное" состояние? это настоящая любовь или просто плохое описание чего-то другого? Потому что я не понимаю, почему я должен влюбляться в такую ​​простую задачу.

  4. Наконец... если я что-то не так делаю, как я могу это исправить?

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

Вопрос о симуляторе остался без ответа.

Благодарю.

редактировать

После дальнейших раскопок я думаю, что нашел некоторую информацию, которая может помочь понять эту проблему.

Во-первых, я наткнулся на эту статью, где в одном из комментариев есть ссылки на документацию героку о динамовом крушении:

"Отказ" динамо представляет собой любое событие, происходящее с процессом, запущенным в динамо, которое вызывает остановку динамометра. Это включает процесс, завершающийся с кодом выхода 0 (или любым другим кодом выхода)

Итак, на данный момент, я понимаю, что, поскольку мой простой тестовый код для работника просто приводит к тому, что его процесс завершается и, следовательно, выходит из строя. Кроме того, я думаю, что часть ответа заключается в том, что рабочий должен быть настроен как фоновый рабочий и выполнен планировщиком ( также здесь):

Динозавры, которые работают как часть вашей динамо формации, должны работать непрерывно.

Я проверю это далее и опубликую свои выводы.

0 ответов

Другие вопросы по тегам