Zadzwonię do AJAX, aby sprawdzić DB, jeśli pojawia się nowy komunikat co 3 lub 10 sekund z tym samym zapytaniem z 4 różnych przeglądarek w tym samym czasie. Ale w pewnym momencie po pętli 100+ serwer zwraca Błąd 508 (Wykryto pętlę). To jest po prostu prosta strona, więc nie potrzebuję serwera VPS.Powtarzające się sprawdzanie wyzwalaczy Błąd 508 (wykrywanie pętli)
Dodałem znacznik czasu w SELECT jako narzędzie różnicujące zapytania, wstawię unset, flush, mysqli_free_result, pause, mysqli_kill, mysqli_close, ale błąd nadal występuje. Procesy wejścia uderzyły 20/20.
Script
var counter = 1;
var notiftimer;
$(document).ready(function() {
ajax_loadnotifs();
});
function ajax_loadnotifs() {
$.ajax({
type: "post",
url: "service.php",
dataType: "json",
data: { action:'loadnotifs' },
success: function(data, textStatus, jqXHR){
$("div").append($("<p>").text(counter++ + ": succeeded"));
notiftimer = setTimeout(function() {
ajax_loadnotifs();
}, 3000);
},
error: function(jqXHR, textStatus, errorThrown) {
console.log(jqXHR.responseText);
}
});
}
service.php
$link = mysqli_connect('localhost', 'root', 'root', 'testdb');
$notifs = array();
$query = "SELECT id, message FROM notifs LIMIT 20";
if (!$temp_notifs = mysqli_query($link, $query)) {
die(json_encode(array("errmsg" => "Selecting notifs.")));
}
while($notif = mysqli_fetch_assoc($temp_notifs)) {
$notifs[] = $notif;
}
mysqli_close($link);
echo json_encode($notifs);
cPanel - Przegląd wykorzystania zasobów
Gdy procesy wejścia trafiają 20/20, pojawia się błąd 508. Jak zachować niskie procesy wprowadzania serwera? (Testowane z 4 różnych przeglądarek, uruchomić je wszystkie aż do pętli 100+ na shared hostingu. Bez problemu na komputerze lokalnym)
Jeśli możesz dodać więcej kodu, pomoże nam to zorientować się, co się dzieje. Na powierzchni trafienie skryptu cztery razy co trzy minuty nie powinno maksymalnie przekroczyć limitu procesu wprowadzania. –
@Jeaf Gilbert, proszę otworzyć zakładkę sieci w przeglądarce, gdy tak się stanie i pokazać nam nagłówki odpowiedzi dla takich nieudanych żądań. Wtedy zobaczymy, który dokładnie program zwraca ten błąd. Może to być serwer WWW, php lub inne proxy. –
@ i-man zaktualizowany, proszę spojrzeć. –