2017-05-10 3 views
-1

私は、サーバーのIPアドレスの完全なHTMLテーブルを持っている、と私は、サーバーが生きているかどうかを確認(そして最終的に、サーバーが生きて/死んでいる場合によっては、表の行をハイライト表示)するためにそれらを5分ごとにそれらにpingを実行します。現在、私は私のコントローラのメソッド呼び出し、5分間隔でのAjaxを使用してい5分ごとにLaravelでAjaxを使用してサーバーにpingを実行するにはどうすればよいですか?

:しかし

var checkSims = function() { 
    $.ajax({ 
    type: "GET", 
    url: '/checkSimStatus', 
    success: function(msg) { 
     onlineSims = msg['online']; 
     offlineSims = msg['offline']; 

     console.log(onlineSims); 
     console.log(offlineSims); 
    }, 
    error: function() { 
     console.log('false'); 
    } 
    }); 

} 

var interval = 1000 * 60 * 1; // where X is your every X minutes 
setInterval(checkSims, interval); 

が、これは非同期ではなく、このコントローラメソッドは、IPアドレスをpingしている間Webサーバは要求を処理することはできません。

私はLaravelのキューシステムについて読んだが、私はこれは私が仕事をトリガするためにある特定のページが必要として私に合うだろう、とテーブルの行を強調表示するJSを使用する必要がありますかわかりません。あなたはAJAXでそれを行っている場合f7n @

+0

Laravelのキュー機能を使用します。各IPを5分ごとにキューに追加し、キューワーカーにバックグラウンドで処理させます。 – Joe

+0

@Joeどのように私は死んだ/生きているIPのテーブル行をハイライトできますか?これがAjaxを使いたかった理由です。私はLaravelのキューシステムとAjaxをどのように接続するのかよく分かりません – f7n

+1

これは正しいとは言えません。組み込みのPHPサーバや悪い設定のWebサーバを使用している場合を除き、一度に1つのリクエストを処理することに制限はありません。 – apokryfos

答えて

-1

は、どのようにそれが動作する場合、そのページのブラウザーで開かれていないIPアドレスを持つHTMLテーブル? cron jobをサーバー上で使用する必要があります。また、VPS(Linux)などを使用している場合は、bashシェルスクリプトを使用して簡単なコードを記述し、デーモンで実行することもできます。また、以下のようなシンプルなコードを作成して、php scriptを作成し、IPアドレスとpingサーバーのHTMLテーブルを持つページを解析(取得)します。

#!/bin/bash 

echo "Press [CTRL+C] to stop.." 

while true 
    do 
    php parse_and_ping.php 
    sleep 300 
done 

sleep 300は5分ごとに機能します。 .shファイル(run_shell.sh)に保存し、ターミナルまたはLinuxサーバのデーモンで実行してください。

関連する問題