[정확히] 300 초 (5 분)에 대한 활동이없는 개인 대화방을 모니터링하는 데 사용되는 백엔드 모듈 (PHP로 작성)을 구축 중입니다. 그럴 경우 스크립트는 데이터베이스를 업데이트합니다 (최대 사용자 수를 특정 숫자로 설정). 나는 now()와 마지막으로 보낸 메시지의 시간 차이에 의해 유휴 시간 범위를 모니터링하고있다. 크론 내 모니터링 스크립트 (PHP-CLI를 통해) 실행 작업 매 분 60 초 설정 : 내가 무슨 짓을PHP가 데이터베이스의 변경 사항을 지속적으로 확인하는 가장 좋은 방법은 무엇입니까?
. 즉시 삼백초 후 유휴 시간을 최대 사용자를 설정하는 조건을 흥정 할 수없는
$expire_time = time() + 60;
//this loop will run for 60 seconds
while(time() < $expire_time)
{
$idle_time = get_all_chatrooms_idle_time();
foreach($idle_time as $s_time)
{
if($s_time >= 300)
{
update_changes();
}
}
usleep(500000);
}
: 모니터링 스크립트 내부. 그래서 나는 정말로 다음과 같은 충고를 따를 것입니다 : "그것이 실제로 의미가 있더라도"무언가를 실제로 요구할 때까지 아무것도하지 마십시오. "
이유? 활성 및 비활성 대화방의 데이터는 대시 보드에 표시되기 때문에 실시간이어야합니다. 대화방 운영자의 보수는 그것에 달려 있습니다.
왜 모든 대시 보드로드를 확인하지 않습니까? 미안하지만 여전히 불가능합니다.
점검은 서버 측이어야하며 대시 보드는 매초마다 폴링하는 ajax로 업데이트됩니다.
날 수에 몇 가지 대략적인 견적을 드리겠습니다
나는 페이지로 모니터링 코드를 첨부
내가 내 현재의 구현보다 더 많은 리소스를 많이 생각 내 아약스 호출에 의해 요청 된 (잘못 임은 경우에 저를 정정) 사회자를 포함하여 웨이브 소음의- 번호 : 채팅방의 ~ 800
- 번호 : 사용자의 당신은로드/우리가 얻고 트래픽을 상상할 수 있도록 ~ 250 채팅방 운영자의
- (X) 번호 : ~ 50
- (x)는 내 상사와 그의 직원 :
(X) - 대시 보드
더 좋은 방법이 볼 수 있습니까? 내가 제대로하고 있니?
잘못된 것처럼 보입니다. CRON 작업에 대해 들어 본 적이 있습니까? 나는 그것을 할 godd 방법은 매 1 분 (또는 그 이하)에 대한 크론 작업을 설정하는 것입니다 생각하십니까? select를 사용하여 간단한 MySQL 스크립트를 실행합니다. – Stranger
가능한 복제본 http://stackoverflow.com/questions/4834829/php-long-polling-with-excessive-database-access –
@ Stranger 내가 그랬어? – yowmamasita