1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60
| <?php
// envoie les en-têtes HTTP
header('Cache-Control: no-cache');
header('Content-Type: text/event-stream');
// force les messages à être envoyés immédiatement
ob_end_clean();
ob_implicit_flush();
$ch = curl_init('<url_a_controler>');
curl_setopt($ch, CURLOPT_HEADER, 0);
curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);
curl_exec($ch);
$info = curl_getinfo($ch, CURLINFO_HTTP_CODE);
if (200 === $info) {
// attention les guillemets doubles (") sont obligatoires pour traiter correctement les "\n"
echo "data:Lapplication est bien accessible\n\n";
}
else {
echo "data:Accès à lapplication ÉCHEC lors du premier test\n";
echo "data:- relance du service\n\n";
shell_exec('<relance_de_lappli>');
sleep(20);
$ch = curl_init('<url_a_controler>');
curl_setopt($ch, CURLOPT_HEADER, 0);
curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);
curl_exec($ch);
$info = curl_getinfo($ch, CURLINFO_HTTP_CODE);
if (200 === $info) {
echo "data:Accès à l'application OK après le relance du service";
}
else {
echo "data:Accès à lapplication ÉCHEC après la relance du service et une attente de 20 secondes.\n";
echo "data:Arrêt de lapplication.\n\n";
shell_exec('<Arrêt_du_service>');
shell_exec('<demarrage_du_service>');
sleep(20);
$ch = curl_init('<url_a_controler>');
curl_setopt($ch, CURLOPT_HEADER, 0);
curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);
curl_exec($ch);
$info = curl_getinfo($ch, CURLINFO_HTTP_CODE);
if (200 === $info) {
echo "data:Accès à lapplication OK après larrêt puis la relance du service\n\n";
}
else {
echo "data:Accès à lapplication ÉCHEC après larrêt puis la relance du service et une attente de 20 secondes.\n\n";
}
}
}
echo "event:end-of-stream\n";
echo "data:\n\n"; |
Partager