【问题标题】:Get SQL Agent job status without polling?无需轮询即可获取 SQL 代理作业状态?
【发布时间】:2010-11-09 15:37:08
【问题描述】:

我正在尝试找到一种方法让 SQL Server“SQL 代理”在作业步骤事件上运行一段特定的代码。我曾希望有一种方法可以使用 SMO 注册回调方法,以便在工作步骤开始或更改状态时调用我的代码。我没有任何成功。有什么方法可以将这些事件推送给我,而不是轮询?

【问题讨论】:

    标签: sql-server smo sql-agent sql-agent-job


    【解决方案1】:

    没有为作业执行公开 Smo、DDL 或跟踪事件(据我从联机丛书中看到的),所以我认为你不能直接做你想做的事。如果您能准确地解释您的目标是什么(以及您的 MSSQL 版本)并且有人可能会提出有用的建议,那将会很有帮助。例如,如果您想收集审计或性能数据,跟踪可能是一个更好的主意。

    同时,这里有一些想法(大部分不是很“好”的想法):

    1. 将您的作业转换为 SSIS 包(它们具有完整的事件模型)
    2. 在工作步骤本身中构建一些东西
    3. 将作业步骤完成记录到表中,并在表上使用触发器来运行您的代码
    4. 运行跟踪并记录到表并使用表上的触发器来运行您的代码

    【讨论】:

    • 我已经离开了 - 回复晚了。无论如何,我想要一个本地部署的应用程序,最终用户可以通过该应用程序启动和监控远程 sql 代理作业的进度,该作业运行一系列相互依赖的 ssis 步骤。这是一个丑陋的问题,我们有一个蹩脚的解决方案。您的想法很好,在这种情况下可能对其他人有所帮助。
    猜你喜欢
    • 2015-09-12
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2015-11-15
    • 1970-01-01
    • 1970-01-01
    • 2011-12-10
    相关资源
    最近更新 更多