Как остановить Heroku от попытки запустить скрипт с `npm start`? - PullRequest
0 голосов
/ 13 января 2020

Я создаю серверное приложение, которое запускает серию автоматизированных сценариев (т. Е. «Ботов») в облаке. Я подготовил экземпляр Heroku Scheduler для автоматического запуска одного из этих сценариев, как показано на рисунке ниже.

Рис. 1. Снимок экрана панели инструментов Heroku Scheduler

enter image description here

Как видно из рис. 1. планировщик должен запускать следующую команду

node src/spiders/clusters/auctionMacro.js

каждые десять минут. Кажется, что это происходит, как и ожидалось, как показано ниже на рисунке 2. На нем показан полный вывод журнала.

Пять записей журнала, начиная с 2020-01-12T10: 41: 54.171208 + 00: 00, появляются для подтверждения ожидаемая команда node src/spiders/clusters/auctionMacro.js выполняется ожидаемым образом, а сценарий выполняется ожидаемым образом.

Однако следующие три записи журнала указывают, что планировщик также пытается выполнить команду npm start и вызывает выполнение сценария. cra sh.

2020-01-12T11: 00: 13.464651 + 00: 00 heroku [web.1]: запуск процесса с помощью команды npm start 2020-01-12T11: 00: 15.143335 + 00: 00 heroku [web.1]: состояние изменено с начала на сбой 2020-01-12T11: 00: 15.080831 + 00: 00 app [web.1]: npm ERR! отсутствует скрипт: start

Что я могу сделать по этому поводу? Можно ли как-нибудь отключить команду npm start? Или сделать что-то еще, чтобы исправить проблему и предотвратить сбой сценария?

Полный вывод журнала, генерируемый heroku logs, выглядит следующим образом.

Рис. 2. Полный вывод $ heroku logs

2020-01-12T10: 41: 46.690564 + 00: 00 app [api]: запуск процесса с командой node src/spiders/clusters/auctionMacro.js от пользователя scheduler@addons.heroku.com 2020-01-12T10: 41: 54.171208 + 00: 00 heroku [scheduler.2053]: запуск процесса с помощью команды node src/spiders/clusters/auctionMacro.js 2020-01-12T10: 41: 54.864597 + 00: 00 heroku [scheduler.2053]: состояние изменилось с начала до 2020-01-12T10: 41: 56.797007 + 00: 00 app [scheduler.2053]: [Журнал успешных скриптов] 2020-01-12T10: 41: 56.799138 + 00: 00 app [scheduler.2053]: [Журнал успешных сценариев] 2020-01-12T10: 41: 56.799853 + 00: 00 app [scheduler.2053]: [Журнал успешных сценариев] 2020-01-12T10: 41: 56.893782 + 00: 00 app [scheduler.2053]: [Журнал успешных сценариев] 2020-01-12T10: 41: 59.126489 + 00: 00 heroku [scheduler.2053]: состояние изменено с полного на полное 2020-01-12T10: 41: 59.111484 + 00: 00 heroku [scheduler.2053]: процесс завершен со статусом 0 2020-01-12T10: 49: 21.119405 + 00: 00 app [api]: запуск процесса с командой node src/spiders/clusters/auctionMacro.js от пользователя myemail@example.com 2020-01-12T10: 49: 29.862904 + 00: 00 heroku [run.9372]: состояние изменилось с начала до 2020-01-12T10: 49: 29.827990 + 00:00 heroku [run.9372]: Ожидание клиента 2020-01-12T10: 49: 29.878338 + 00: 00 heroku [run.9372]: запуск процесса с командой node src/spiders/clusters/auctionMacro.js 2020-01-12T11: 00: 05.438362 + 00: 00 heroku [web.1]: состояние изменено с аварийного на стартовое 2020-01-12T11: 00: 13.464651 + 00: 00 heroku [web.1]: запуск процесса командой npm start 2020-01-12T11: 00: 15.143335 + 00: 00 heroku [web.1]: состояние изменено с начала на сбой 2020-01-12T11: 00: 15.080831 + 00: 00 app [web.1]: npm ОШИБКА! отсутствует скрипт: начало 2020-01-12T11: 00: 15.088306 + 00: 00 app [web.1]: 2020-01-12T11: 00: 15.088587 + 00: 00 приложение [web.1]: npm ОШИБКА! Полный журнал этого прогона можно найти в: 2020-01-12T11: 00: 15.088690 + 00: 00 приложение [web.1]: npm ОШИБКА! /app/.npm/_logs/2020-01-12T11_00_15_081Z-debug.log 2020-01-12T11: 00: 15.130770 + 00: 00 heroku [web.1]: процесс завершен со статусом 1 2020-01-12T11: 08: 51.893315 + 00: 00 heroku [run.9372]: Клиентское соединение закрыто. Отправка SIGHUP всем процессам 2020-01-12T11: 08: 52.437813 + 00: 00 heroku [run.9372]: состояние изменено с полного на полное 2020-01-12T11: 08: 52.421870 + 00: 00 heroku [run.9372]: процесс завершен со статусом 129 me@My-MacBook-Air кукловод% heroku maint 2020-01-12T22: 15: 01.428118 + 00: 00 app [scheduler.9940]: == Запуск: 2020-01-12 22: 04: 21.402 2020-01-12T22: 15: 01.428167 + 00: 00 app [scheduler.9940]: 2020-01-12T22: 15: 02. 410217 + 00: 00 heroku [scheduler.9940]: остановка всех процессов с помощью SIGTERM 2020-01-12T22: 15: 02.481455 + 00: 00 heroku [scheduler.9940]: процесс завершен со статусом 143.929 (работает в течение 10,7 минут)

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

Основываясь на этом SO-ответе , я выполнил следующую команду

heroku scale web=0

и получил следующий ответ в терминале

Масштабирование динам ... выполнено, теперь выполняется Сеть в 0: Свободен

Я не уверен, что это значит, или это направление, в котором я должен идти.

1 Ответ

0 голосов
/ 13 января 2020

Решение состояло из двух частей для меня. Я решил проблему после реализации обеих частей.

Во-первых, мне пришлось отключить npm start с помощью следующей команды терминала, как указано при редактировании в OP.

heroku scale web=0

Во-вторых Мне нужно было сконфигурировать мои пакеты сборки и опции puppeteer.launch() для поддержки работы в серверной среде Heroku следующим образом.

Сначала я очищаю все свои пакеты сборки, а затем добавляю puppeteer-heroku-buildpack и the heroku / nodejs one:

$ heroku buildpacks:clear
$ heroku buildpacks:add --index 1 https://github.com/jontewks/puppeteer-heroku-buildpack
$ heroku buildpacks:add --index 1 heroku/nodejs

Затем добавьте следующие аргументы к функции запуска кукловода:

const browser = await puppeteer.launch({
  args : [
    '--no-sandbox',
    '--disable-setuid-sandbox',
  ],
});

Наконец, разверните его обратно к Heroku:

$ git add .
$ git commit -m "Fixing deployment issue"
$ git push heroku master

Источником этого второго элемента является этот SO-ответ.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...