如何避免同一个事件处理程序多次命中

问题描述

我正在尝试将发送电子邮件任务放在“OnError”情况下的事件处理程序中。 但我发现有时它会在同一任务失败时发送多封电子邮件。 这可能我们只能发送一封电子邮件,这意味着只触发一次事件处理程序。 在屏幕截图中,您可以看到在同一个任务中,它出现 4 个错误,因此它命中了同一个事件处理程序 4 次。我们可以将其减少到 1 吗?谢谢!!

enter image description here

解决方法

理想情况下,不要将电子邮件功能放在您的 ssis 包中。可以从调用任务调度程序(如 SQL 代理或您可能使用的任何企业调度程序)发出电子邮件。

如果你真的有充分的理由发送一封电子邮件,你可以使用以下模式,使用一个序列容器来包装你的所有任务,在发送电子邮件的末尾添加一个失败约束:

enter image description here

或者,您可以向 slack 或团队发帖:https://www.thisintelligentlife.net/posting-to-slack-from-sql-agent