2つのサーバーに同じデータを置いています。
http://192.168.100.100/data.csv
http://192.168.100.101/data.csv
100のサーバーがたまに落ちてしまうのですが、落ちても101のデータを使ってサービスを継続させる方法を考えています。
サーバーの生死をfilegetcontentsで確認し、http://192.168.100.100/data.csvのデータが表示できなかったらすぐにhttp://192.168.100.101/data.csv のデータを取りに行くようにさせたいと考えテストしてみました。
下記のように200を返さなかったら即座にNG対応をさせて次の処置に移るというPHPを組んでみたのですが、PHPのタイムアウトまでの間考え込んでしまい、サーバーが落ちたらすぐに次の対応に移るということが出来ません。
PHPが固まり、何も表示しないという最悪の状態です。
サーバーからデータが取れなかったら即座に次の作業に移る方法はありますでしょうか?
(データが0.2秒で表示できなかったら次に移るというような方法でも結構です。)
宜しくお願い致します。
php
1 2<?php 3 4$context120= stream_context_create(array( 5 'http' => array('ignore_errors' => true) 6)); 7$response120 = file_get_contents('http://192.168.100.100/data.csv', false, $context120); 8 9$pos120 = strpos($http_response_header[0], '200'); 10if ($pos120 === false) { 11$res120=file_get_contents('http://192.168.100.100/data.csv', false, $context120); 12} 13else 14{ 15$res120=file_get_contents('http://192.168.100.101/data.csv', false, $context120); 16} 17 18echo $res120; 19 20?> 21
回答2件
あなたの回答
tips
プレビュー