2017-05-10 1 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를 핑 동안 웹 서버는 요청을 처리 할 수 ​​없습니다 .

Laravel의 대기열 시스템에 대해 읽었지만 특정 작업을 트리거하는 특정 페이지가 필요하고 이것이 JS 행을 강조 표시해야 할 필요가 있기 때문에 적합하지 않을 수 있습니다.

+0

Laravel의 대기열 기능을 사용할 것입니다. 각 IP를 5 분마다 대기열에 추가하고 대기열 작업자가 대기열에서 처리하도록합니다. – Joe

+0

@Joe 어떻게하면 죽은/살아있는 IP의 테이블 행을 강조 표시 할 수 있습니까? 그래서 Ajax를 사용하고 싶었습니다. 나는 Ajax와 Laravel의 대기열 시스템을 연결하는 방법을 모르겠다 – f7n

+1

그건 맞지 않아. 기본 제공 PHP 서버 또는 잘못 구성된 웹 서버를 사용하지 않는 한 한 번에 하나의 요청에 제한이 없습니다. – apokryfos

답변

-1

@ f7n 아약스로 해본 적이 있다면, IP 주소가있는 HTML 표가 브라우저에서 열리지 않는 페이지가 있다면 어떻게 작동할까요? 서버에서 cron job을 사용해야한다고 생각합니다. 또한, VPS (Linux) 또는 다른 것을 사용한다면 bash 쉘 스크립트로 간단한 코드를 작성하고 데몬에서 실행할 수 있습니다. 또한 아래와 같이 간단한 코드를 생성하여 php script을 생성합니다. 여기서 IP 주소와 핑 서버의 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 서버의 데몬에서 실행하십시오.

관련 문제