异步存储过程调用
时间: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作业安排任务来做到这一点。