Задать вопрос
@EVOSandru6

Как правильно в pm2 запускать cron scheduller?

Привет, ребят,

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

pm2 start "cd /var/www/site && make parse > data/logs/$(date +%F_%T).log" --name parseJob --cron "*/15 * * * *"


Есть небольшая вероятность, что он принимая некие сигналы от puppeteer рестартует, но это как то странно.
  • Вопрос задан
  • 229 просмотров
Подписаться 1 Простой Комментировать
Помогут разобраться в теме Все курсы
  • Яндекс Практикум
    Бэкенд на Node.js для фронтенд-разработчиков
    3 месяца
    Далее
  • Skillbox
    Node.js
    2 месяца
    Далее
  • Stepik
    Microservices - паттерны и практика построения микросервисов
    1 неделя
    Далее
Пригласить эксперта
Ответы на вопрос 1
kprod
@kprod
Fullstack-разработчик
Ответ для тех, кто всё еще ищет

Дело в том, что pm2 был придуман для того, чтобы запускать процессы на сервере и они работали 24/7, а в случае если произошла ошибка - процесс автоматически перезапускался. В вашем же случае скрипт конечный:
- Запуск скрипта
- Проход всех итераций
- Завершение работы скрипта

Для pm2 завершение работы скрипта служит сигналом о том, что его необходимо перезапустить, даже если вы укажите параметр --cron. Для того, чтобы скрипт запускался действительно по крону, необходимо явно указать, что автоматический перезапуск не требуется, с помощью ключа --no-auorestart.

Например:
pm2 start index.js --cron "* * * * *" --no-autorestart
Ответ написан
Комментировать
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы