나는 PHP 응용 프로그램 용 작곡가 패키지를 만들고 있습니다. 목표는 요청, 대기열 작업, 취해진 다른 작업 후에 일부 데이터를 보내는 것입니다. 나의 초기 (그리고 일하는) 아이디어는 register_shutdown_function
을 사용하는 것이다. 이 접근 방식에는 두 가지 문제가 있습니다. 첫째, 페이지 응답 시간이 늘어납니다. 즉, 요청을 계산하고 API를 통해 데이터를 전송하는 오버 헤드가 발생합니다. 또 다른 문제는 대기열 작업자와 같이 장기간 실행되는 프로세스가이 메서드를 오랫동안 실행하지 않기 때문에 데이터를 만든 시간과 보내고 처리 할 때 사이에 막대한 차이가있을 수 있다는 것입니다.보내기 전에 데이터를 수집하기위한 임시 저장소
내 생각에 임시 저장 장치를 사용하여 데이터를 저장하고 매 분마다 보내도록 cronjob을 사용할 수 있습니다. 이 접근법에서 볼 수있는 유일한 문제는 hight IO에서 동시성을 관리하는 것입니다. 많은 프로세스가 매 (n) ms마다 파일에 쓰기 때문에 파일을 읽고 이미 보낸 줄을 제거하는 데 문제가 있습니다.
필자가 피하려고하는 또 다른 옵션은 클라이언트 데이터베이스를 사용하는 것입니다. 이로 인해 잠재적으로 성능 문제가 발생할 수 있습니다.
이렇게하는 것이 바람직한 방법은 무엇입니까?
편집 : 패키지는 본질적으로 모니터링 에이전트입니다.
이입니다. – Pete
그렇지 않습니다. 이것은 클라이언트 인프라에 의존해서는 안되는 작곡가 패키지입니다. – Ignas
흠. 괜찮아. 그런 다음 모든 요청이 동일한 파일에 쓰여지는 요구 사항입니까? 그렇지 않다면 각 파일을 고유 한 파일로 만들고 cronjob과 함께 일괄 처리하십시오. 이렇게하면 동시성 문제가 발생하지 않습니다. – Pete