먼저이 복잡한 긴 문제 설명에 대해 사과드립니다.별표 CDR 데이터베이스에 대한 올바른 CDR 수집 프로세스
현재 저는 전화를 처리하는 여러 개의 asterisk
서버를 유지 관리하고 있습니다. 현재 중앙 집중식 데이터베이스에 매시간 CDR
을 수집 중입니다.
여기서 가장 큰 문제는 copied
개의 레코드와 new
개의 레코드를 추적하는 것입니다. 내 설정에서 각 asterisk
CDR
테이블 로 id
열이 있습니다. 그래서 중앙화 된 테이블에서 나는이 id
을 대처하고 유지할 열을 유지합니다 server_name
. id
과 server_name
을 모두 사용하여 각 asterisk
서버의 마지막으로 수집 된 id
번호를 식별 한 다음 숫자보다 높은 모든 새 CDR
을 수집 할 수 있습니다.
이 프로세스는 완벽하지 않습니다. ID를 사용하는 것이 좋지 않기 때문에 항상 증가합니다. 또한이 설정을 REST API
으로 변환하고 id
을 중지해야합니다.
범위를 사용하여 통화 기록을 선택하는 것도 좋습니다. 이는 CDR
을 매시간 수거하고 있고 진행 통화 중에 duration
이 1 시간 이상 계속되었을 경우 어떻게 처리할까요? Asterisk
CDR
통화가 끝날 때 레코드를 삽입하고 datetime
필드가 항상 오름차순이 아닙니다.
나는 datetime
범위 이상 사용하여 copied
라는 플래그를 사용하여 누락 된 기록의 문제를 해결할 수 있지만 무하고 플래그을 유지할 수 없기 때문에 그것은 REST APT
에 적합하지 않습니다 수 있습니다.
가 지금은 아이디어가 부족 해요 ... 그리고 궁금가 ... 이것에 대한 더 나은 솔루션이이 매우 구체적인 시나리오