问题描述
在 SSRS 中有报告和对这些报告的订阅。相关问题:synchronous SSRS report execution
我创建了一个存储过程来强制它们按需执行,而不是按计划执行。
只有在报告成功生成或失败后,或者在确定的超时时间后,我才需要这个存储过程继续。
由于这是一个异步问题,我必须及时等待并汇集每个特定订阅的最后状态。
我发现在我触发了按需订阅后,在当前状态变为“待处理”之前存在延迟。我想知道是否会有任何情况,在汇总状态时,答案可能与“待定”有任何不同。
此外,我发现没有明确的成功或失败标志。我想知道我是否有可能在“pending”之后获得状态,表示不是最终成功或失败的另一种状态。
如果这些假设状态中的任何一个存在,这个算法就会失败,这就是我问的原因。我找不到订阅的可能状态的完整列表
DECLARE @status VARCHAR(255) = 'Pending'
EXEC reportserver.dbo.AddEvent @EventType = 'TimedSubscription',@EventData = @suscription_id
WHILE @start > dateadd(MINUTE,- @timeout,getdate())
AND @status = 'Pending'
BEGIN
WAITFOR DELAY '00:00:05' -- wait before pooling status again
SELECT @status = LastStatus
FROM reportserver.dbo.subscriptions
WHERE subscriptionid = @suscription_id
AND LastRunTime > @start
END
解决方法
暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!
如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。
小编邮箱:dio#foxmail.com (将#修改为@)