2016-11-19 2 views
0

내 프로그램은 가입자에게 새로운 통화, 종료 된 통화, 전송 등에 대해 알려야합니다.얼마나 빨리 CEL 이벤트가 데이터베이스에 기록됩니까?

AMI에서 CEL 이벤트를 수신 할 수 있지만 더 간단한 솔루션은 모든 X 초마다 데이터베이스를 쿼리하고 거기에서 레코드를 처리하는 것입니다. 어쨌든 내 프로그램이 실행되지 않을 때 발생하는 호출을 처리해야하므로 간단합니다. 달리지 마.
(그래, 나도 알아, 일반적으로 밀려 이벤트, IMO을 폴링 후 더 나은,하지만이 경우)

하지만 CEL 이벤트가 데이터베이스에 덤프 얼마나 빨리 확실하지 않다. 지연이나 대기열이 있습니까?

로컬 별표에서 테스트했으며 이벤트는 데이터베이스에 즉시 표시되었지만 일부로드가 많이 걸린 인스턴스에서는 그렇지 않을 수 있습니다.

답변

1

대기열이 없습니다. 백엔드 데이터베이스 CEL 드라이버가로드되면 데이터베이스 연결이 초기화됩니다. 이벤트가 발생하면 데이터베이스 작업이 완료 될 때까지 (성공, 실패, 시간 초과) 기본적으로 해당 호출의 실행을 차단합니다.

ODBC를 사용하는 경우, 내가 기억하는 것처럼 약간 다릅니다. 그것은 데이터베이스 트랜잭션과 커서를 처리하지만 여전히 대기열을 처리하지 않습니다. 연결 풀링에 대해 잘 모르겠습니다.

+0

이 동작은 별표 (Asterisk)의 단점이기도합니다. 높은 교통량 시스템에는 적합하지 않습니다. – viktike