2016-09-09 88 views
-1

當一行被插入到我們的SQL Server數據庫中的特定表中時,我需要能夠發送XMPP消息(並且如果XMPP服務器沒有使插入失敗或代碼不可用/失敗/等)。從SQL Server觸發器或ON INSERT中觸發XMPP消息

這是可能的,而不會導致在某些情況下插入失敗?

+0

PS - 我很樂意使用SIP或Skype或任何其他消息協議/客戶端運行IOS/Android手機/平板電腦。 – brian

回答

1

爲了避免潛在阻塞您的數據庫應用程序,我建議不要直接從觸發器發送任何外部消息。畢竟,觸發器在導致觸發的SQL語句的上下文中執行,並且如果觸發器延遲,那麼您的語句將不得不等待觸發器完成(或已超時)。

相反,我會做的是:

  • 行插入足夠的信息,一個「命令」表可以稍後發送您的XMPP消息 - 這可以在觸發器來實現

  • 有一個單獨的一段代碼,例如一個預定的SQL Server作業,每隔x分鐘或幾小時或者需要頻繁(或不經常)檢查「Command」表,並且這個作業是獨立於應用程序運行並且獨立於應用程序運行,如果它們試圖發送這些消息並處理任何潛在的錯誤情況 - 雖然你的主應用程序樂於工作,不受任何延遲,超時等困擾