나는 현재 5k 명의 사용자를 보유하고 있으며 앞으로도 계속 증가 할 PHP 응용 프로그램을 보유하고 있습니다. 일주일에 한 번 나는 스크립트 실행 메시지 대기열을 사용해야합니까?
- 가 사용자를 통해 데이터베이스에서
- 루프를 모든 사용자를 가져, 그리고 각각에 대한 일부 보수 (이 새로운 DB의 레코드를 추가 포함)
이 스크립트가 마지막으로 실행 된 시간은 30 초의 최대 실행 시간 오류로 인해 죽기 전에 1400 명의 사용자 만 처리했습니다. 내가 생각한 한가지 해결책은 메인 스크립트가 여전히 모든 사용자를 가져 오도록하는 것이지만 유지 보수 프로세스 자체를 수행하는 대신 비동기식 cURL 호출 (각 사용자마다 1 회)을 수행하여 새 스크립트로 유지 보수를 수행합니다 특정 사용자.
5k + cURL 호출로 인해 서버가 다운 될 수 있다는 점이 걱정입니다. cURL 호출 대신 메시징 큐를 사용하여이를 해결할 수 있습니까? 나는 하나의 경험을 가지고 있지만 그것을 읽은 것에서 이것이 도움이 될 것 같은 것 같습니다. 그렇다면 어떤 메시지 대기열 시스템을 권하고 싶습니까?
어떤 배경 정보 :
- 이 내 DB로 내 ORM와 MySQL로 교리를 사용 심포니 프로젝트,
- 서버가 Windows 시스템, 그리고 내가 윈도우 작업 스케줄러를 사용하고 있는데 주당 한 번이 스크립트를 자동으로 실행하는 wget.
모든 조언과 도움을 주실 수 있습니다.
모든 사용자를 반복하면서 각각 하나씩 별도의 SQL 쿼리를 사용하여 DB 레코드를 저장합니다. 이것은 '각 사용자를 처리 할 때 변경 사항을 적용'한다는 의미입니까? –