Jadi kami memiliki logika di mana kami akan memeriksa status URL setiap 15 detik seperti:

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

Url ini dijadwalkan untuk bekerja pada waktu tertentu dalam sehari untuk jangka waktu tertentu saja dan aplikasi kita harus mendeteksi ketika telah kembali 200. Setelah itu, kami akan menampilkan iframe yang memiliki konten url (dan juga menghapus intervalnya). Jadi, setiap kali masih mengembalikan 404, kami akan menampilkan gambar "mendatang".

Apakah tidak apa-apa untuk terus melakukan pemeriksaan ini? Tidakkah kita akan menemukan terlalu banyak kesalahan permintaan pada url di beberapa titik? Sadarilah bahwa kami mungkin tidak dapat mengontrol server untuk url tersebut. Katakanlah sekitar 1000 orang akan mengakses halaman yang melakukan pengecekan. Beberapa dari mereka mungkin mengunjungi halaman sebelumnya dan tinggal di sana. Halaman akan mulai melakukan pemeriksaan ini setiap 15 detik hingga url menjadi hidup (yang dapat memakan waktu berjam-jam setelah mereka mendarat di halaman).

0
catandmouse 9 Juli 2020, 04:30

1 menjawab

Jawaban Terbaik

Untuk menentukan apakah sesuatu itu hidup atau tidak, Anda mungkin ingin mengembalikan http.status === 200 sebagai gantinya. Artinya jika dikatakan ada internal server error misalnya error 500, maka dianggap tidak hidup.

Untuk pendekatan polling, interval apa pun bisa terlalu sering jika Anda memiliki banyak pengguna.

Taruhan terbaik Anda untuk skalabilitas adalah memiliki sistem berbasis soket untuk komunikasi. Seperti yang Anda sebutkan, Anda menggunakan node.js. Anda dapat melihat menggunakan socket.io. Saat Anda "langsung" maka Anda bisa memancarkan acara ke semua klien yang terhubung.

1
Bren 9 Juli 2020, 01:48