2016-11-19 33 views
0

我的程序應該通知其用戶有關新的呼叫,結束的呼叫,轉賬等。將CEL事件寫入數據庫的速度有多快?

我可以在AMI中收聽CEL事件,但更簡單的解決方案是每隔X秒查詢數據庫並處理來自那裏的記錄,因爲無論如何我必須這樣做來處理髮生在我的程序失敗時的調用不會跑。
(是的,我知道,平時推事件是更好然後投票,但不是在這種情況下,IMO)

但我不知道CEL事件是如何快速傾入數據庫。有沒有延遲或隊列?

我已經在我的本地Asterisk和事件檢測出現在數據庫馬上,但在某些高負載情況下,這可能並非如此。

回答

1

沒有隊列。 加載後端數據庫CEL驅動程序時,它會初始化與數據庫的連接。當事件發生時,它基本上會阻止該調用的執行,直到數據庫操作完成(成功,失敗,超時)。

如果使用ODBC,這是我所記得的有點不同。它處理數據庫事務和遊標,但仍然沒有隊列。我不確定連接池。

+0

這種行爲也是Asterisk的缺點。它不適合高流量系統。 – viktike