Возникнет ли проблема с проверкой статуса URL каждые X секунд? - PullRequest
0 голосов
/ 09 июля 2020

Итак, у нас есть лог c, в котором мы будем проверять статус URL каждые 15 секунд, например:

const http = new XMLHttpRequest();
const alive = (url) => {
  http.open("HEAD", url, false);
  http.send();
  return http.status !== 404;
};

Этот URL-адрес должен работать в определенное время дня для только период времени, и наше приложение должно будет определить, когда оно вернуло 200. Как только это произойдет, мы отобразим iframe с содержимым url (а также очистим интервал). Поэтому всякий раз, когда он все еще возвращает 404, вместо этого мы будем отображать «предстоящее» изображение.

Можно ли продолжать эту проверку? Не столкнемся ли мы в какой-то момент с ошибкой слишком большого количества запросов на URL-адресе? Поймите, что мы не сможем контролировать сервер для этого URL. Скажем, около 1000 человек будут заходить на страницу, которая выполняет проверку. Некоторые из них могут зайти на страницу раньше и остаться там. Страница будет выполнять эту проверку каждые 15 секунд до тех пор, пока url не станет активным (что может занять несколько часов после того, как они попали на страницу).

1 Ответ

1 голос
/ 09 июля 2020

Чтобы определить, жив ли что-то, вы, вероятно, захотите вместо этого вернуть http.status === 200. Это означает, что если есть внутренняя ошибка сервера, например, ошибка 500, то предполагается, что он не работает.

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

Лучший вариант для масштабируемости - это система связи на основе сокетов. Как вы упомянули, вы используете node.js. Вы можете изучить использование socket.io . Когда вы go "живете", вы можете просто отправить событие всем подключенным клиентам.

...