我有一个MAIN SSIS包,内部调用2个子包。
这个MAIN pkg一起激活2个包(使用执行流程任务“dtexec / DTS”),并且有一个业务规则来查看某个时间戳的表列,并等到该时间戳是今天的日期(此时间戳已更新)由第三方)。
我目前正在使用foreach循环检查此时间戳,但是我在每次重试之间使用T-SQL语句睡眠10分钟,即:
WAITFOR DELAY '00:10:00'
我的问题是,这会等待整个MAIN SSIS pkg还是只有这个孩子pkg?
另外,如果有更好的方法来实现这个功能,那么两个孩子pkgs可以并行运行而不会相互挂起?
答案 0 :(得分:1)
它会挂起整个主要的SSIS包吗?如果您的主程序包在此步骤中有先例,那么整个程序包将等待。您可能希望考虑从SQL代理作业调用主程序包,并重复10分钟。
但触发的想法更好。
答案 1 :(得分:0)
一些想法: 关于包装设计: 将两个子包放在父包的控制表面上的序列容器中。不要将它们“连接”在一起,以便它们并行运行。在序列容器外部放置一个执行sql任务。此任务将检查第三方更新的时间戳。使用条件来决定是否执行序列容器。
您打算如何安排父包? 创建一个sql作业来运行该包。 如果日期正确,我们可以在表上创建一个可以调用作业的触发器。相关链接:http://www.tek-tips.com/viewthread.cfm?qid=270744
这是一个有趣的问题。请发布您的发现和解决方案说明。祝你好运!