从SQL Server触发器或ON INSERT触发XMPP消息

时间:2016-09-09 14:38:23

标签: sql-server tsql triggers insert xmpp

当一行插入我们的SQL Server数据库中的特定表时,我需要能够发送XMPP消息(并且如果XMPP服务器或代码不可用/失败/等,则不能使插入失败)。

这是否可能在某些情况下不会导致插入失败?

1 个答案:

答案 0 :(得分:1)

为避免可能阻止您的数据库应用程序,我建议 NOT 直接从触发器发送任何外部消息。毕竟,触发器在SQL语句的上下文中执行导致它触发的,如果触发器被延迟,那么你的语句必须等到触发器完成(或超时) )。

相反,我要做的是:

  • 在“命令”表中插入一行,其中包含足够的信息,以便以后能够发送您的XMPP消息 - 这可以在触发器中完成

  • 有一段单独的代码,例如一个计划的SQL Server作业,每隔x分钟或几小时检查一次“命令”表,或者经常(或不经常)检查你需要的那个 - 并且这个作业单独运行并独立于你的应用程序,他们应该尝试发送这些消息,并处理任何潜在的错误情况 - 当您的主要应用程序愉快地工作时,不会受到任何延迟,超时等的困扰。