Задать вопрос
carlcox
@carlcox
Fullstack developer

NodeJs, как сделать автоматическое выполнение скрипта по времени?

Доброго времени суток.
- Есть сервер на nodejs, входной файл server.js запускаю на сервере через forever start
- Есть скрипт который парсит с сайта донора информацию

Хотел сделать чтобы парсинг происходил раз в полчаса, использовал пакет 'node-shedule'
Но понял, что сделал неправильно засунув код в server.js, т.е. каждый пользователь зашедший на сайт запускал скрипт парсинга.
Вопрос в следующем - как сделать правильно?
Правильно ли я понимаю, что нужно запускать отдельные процессы с парсингом и с сайтом. Если можно, то поделитесь примером.
Заранее, спасибо
  • Вопрос задан
  • 244 просмотра
Подписаться 1 Средний 1 комментарий
Пригласить эксперта
Ответы на вопрос 2
bubandos
@bubandos
bash'у, javascript'ую, php'лю, css'аю, html'каю
По феншую: настраиваете крон и запускаете node parser.js
Если делать нечего: setInterval(function(){/*парсите*/}, 30*60*1000)
Ответ написан
Комментировать
Например так:
function parser() {
  // request get
  return Promise.delay(500).then(() => ({ results: [] }));
}

function* sequence() {
  while (true) {
    yield parser();
    // other throwns
  }
}

(async () => {
  for (let parserPromise of sequence()) {
    const parserResults = await parserPromise;
    await Promise.delay(30 * 60 * 1000);
  }
})();
Ответ написан
Комментировать
Ваш ответ на вопрос

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

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