异步存储过程调用

时间:2020-03-05 18:42:41  来源:igfitidea点击:

是否可以从另一个存储过程异步调用存储过程?

编辑:特别是我正在使用DB2数据库。

解决方案

回答

摘要:是的,如果数据库具有消息队列服务。

我们可以将消息推送到队列,队列处理器将异步使用它。

  • Oracle:队列
  • SQL Server:服务代理
  • DB2:事件代理

对于"纯"存储过程语言(PL / Sql或者T-Sql),答案是否定的,因为它与大多数数据库具有的基本事务模型相反。

但是,如果数据库具有排队机制,则可以使用它来获得相同的结果。

回答

使用MS Sql Server 2005,请尝试Service Broker和/或者CLR存储过程。我认为TSQL没有直接内置任何东西。

回答

听起来我们需要使用Cron(或者Windows Equiv)放置一些计划的作业。我们可以使用初始存储的proc调用在数据库中设置某种标志,然后由cron作业定期检查该标志。如果我们需要在执行第二个作业之前有特定的延迟,则应该能够通过cron作业安排任务来做到这一点。