我正在尝试以编程方式一个接一个地运行一些 SSRS 订阅。这些报告都是长时间运行的,如果同时触发,则会始终失败。目前,我们在一天中分布着大约四种不同的订阅,以确保它们不会发生冲突。不幸的是,这会浪费很多时间。
我为此提供的解决方案是创建一个未计划在所有相关报告上运行的订阅,然后在每个完成运行后获得一个作业来触发每个订阅:
- 一个作业触发第一个订阅
- 使用 WAITFOR 命令给订阅运行几秒钟的时间。
- 使用 WAITFOR 命令定期检查订阅是否正在运行(“待定”)
- 当 WAITFOR 检查发现报告已发送时,作业触发下一次订阅,依此类推....
我知道触发订阅的代码:
exec [ReportServerWSS].dbo.AddEvent @EventType='SharedSchedule', @EventData='011e83ff-344a-416a-83cb-1a9281e4205b'
我只需要知道如何在进行检查时使用 WAITFOR,然后对检查结果做出响应。