2011-04-28 2 views
3

세미 실시간으로 알림 시스템을 페이스 북과 비슷하게 만들려고 노력하고 있습니다. 그런 이유로 나는 마음이없는 폴링 (폴링마다 N 초) 대신에 긴 폴링을 사용할 것을 고대하고 있습니다.긴 투표 (혜성) 푸시 요청을하기 위해 PHP의 max_execution_time을 5 분으로 변경하는 것이 좋지 않습니까?

예, 아파치를 사용하지 않고 있습니다.이 폴링 유형을 처리 할 수있는 Nginx에 있습니다.

긴 폴링의 주제와 관련하여 읽은 모든 자습서는 데이터가 반환되지 않고 다시 폴링되는 경우 아약스 요청 시간 초과가 30-50 초가되는 예제를 보여줍니다. 이전에는 30 초마다 알림을 확인하기 위해 서버를 폴링하는 데 사용되었지만 긴 폴링으로 인해 상황이 어떻게 개선 되었습니까? 30-50 초마다 다시 연결됩니다.

그런 이유로 나는 max_execution_time을 기본 60에서 300 또는 400으로 변경 한 다음 시간 초과 및 다시 연결하기 전에 최소 5 분 동안 대기하는 요청으로 폴링하는 옵션이 될 수 있다고 생각했습니다.

이렇게하면 좋지 않은 부작용이 예상 될 수 있습니까? 이 접근법에 결함이 있습니까? 아니면 더 나은 방법이 있습니까?

감사합니다.

+0

요청한 내용이 아니지만 30-50 초 내에 새 데이터가 나오는대로 긴 폴링이 반환되므로 더 좋습니다. 보통 폴링은 다음 간격까지 기다려야합니다. – jcoder

+0

당신이 맞습니다. 아마도 약간 개선 된 것이지만, 오랫동안 폴링을하는 주된 목적은 실수하지 않으면 HTTP 호출을 줄이는 것입니다. –

+1

아니 그 주요 목적은 매우 낮은 대기 시간의 목적입니다. 대부분의 경우 긴 폴링은 더 많은 호출을 발생시킵니다. I.E. 30 초 동안 값이 3 ~ 4 회 업데이트되면 롱 폴링으로 4 ~ 5 회의 전화가 걸리게됩니다. 일반 폴링에서는 1 회만 수행됩니다. – Andrew

답변

3

더 나은 방법은 해당 작업에 최적화 된 백엔드를 사용하는 것입니다. node.js.

그러나 PHP를 사용하고 싶다면 최대 실행 시간을 높이지 않아도됩니다.

+0

흠, 답장을 보내 주셔서 감사합니다. 앞으로 나아갈 것입니다. 메모리 누수가 발생할 가능성이 있습니까? –