繁体   English   中英

SQL代理:设置最大执行时间

SQL Agent: Set a Max Execution Time

提示:本站收集StackOverFlow近2千万问答,支持中英文搜索,鼠标放在语句上弹窗显示对应的参考中文或英文, 本站还提供   中文繁体   英文版本   中英对照 版本,有任何建议请联系yoyou2525@163.com。

下午。 我在MS 2K8 BI服务器上运行了几个SQL Agent作业,其中一些每天运行,其他一些每小时运行,每两分钟一次(另一个进程的心跳监视器)。 还有一个应用程序,每隔24分钟就会每隔几分钟导入一次数据。 有时,更新和报告的某些组合会发生冲突,并且一个或另一个挂起半小时或更长时间,而不是通常的60秒。

虽然我需要弄清这些竞赛条件的根源,但与此同时,我想设置某些作业,例如在五分钟后自动消失。 我可以在SSIS或Windows计划任务中执行此操作,但是在SQL Agent中看不到任何方法。 这是可能的,还是我需要将任务包装在SSIS包中才能获得这种控制?


仅供参考,这是我最后使用的SQL Agent作业:

DECLARE @Cancelled BIT
EXEC dbo.CancelJob @JobName = 'ETL - Daily', @Cancelled = @Cancelled OUT

IF @Cancelled = 1
    BEGIN
    DECLARE @Success INT
    EXEC @Success = msdb..sp_send_dbmail
        @profile_name = 'Reporting',
        @recipients = 'reporting@mycompany.com',
        @subject = 'Cancelled Daily ETL'
    IF @Success <> 0 RAISERROR('An error occurred while attempting to send an e-mail.', 16, @Success)
    END

...这是CancelJob背后的代码:

CREATE PROCEDURE dbo.CancelJob(@JobName VARCHAR(100), @OwnerName VARCHAR(100) = NULL, @Cancelled BIT OUT)
AS BEGIN
    IF @OwnerName IS NULL SET @OwnerName = SUSER_NAME()
    SET @Cancelled = 0

    CREATE TABLE #JobInfo
        ( 
        Job_ID  UNIQUEIDENTIFIER,
        Last_Run_Date   INT,
        Last_Run_Time   INT,
        Next_Run_Date   INT,
        Next_Run_Time   INT,
        Next_Run_Schedule_ID    INT,
        Requested_To_Run    INT,
        Request_Source  INT,
        Request_Source_ID   VARCHAR(100),
        Running INT,  -- This is the only field we want (sigh)
        Current_Step    INT,
        Current_Retry_Attempt   INT,
        State   INT
        )
    INSERT INTO #JobInfo
        EXEC xp_sqlagent_enum_jobs 1, @OwnerName

    DECLARE @Running INT = (SELECT Running FROM #JobInfo AS JI INNER JOIN msdb..sysjobs_view AS J ON JI.Job_ID = J.job_id WHERE J.name = @JobName)
    IF @Running = 1
        BEGIN
        BEGIN TRY
            EXEC msdb..sp_stop_job @job_name = @JobName
            SET @Cancelled = 1
        END TRY
        BEGIN CATCH
            -- If an error occurs, it is *probably* because the job finished before we could cancel it, which is fine
        END CATCH
        END
END
GO

xp_sqlagent_enum_jobs是避免无法捕获的错误的技巧。

1 个回复

我从来不需要经常这样做,因此可能会有更好的长期解决方案,但是我创建了第二份工作,以在极少数需要执行此任务的情况下停止执行第一份工作。 我只是使用sp_stopjob过程来做到这一点。

1 如何设置方法的最大执行时间?

我有一个用Java编写的Sudoku游戏。 游戏的主要过程是主要方法。 我有一个while循环,其中有myClassObject.getCommandFromScanner()函数来使用Scanner读取输入,因此用户可以填充数独板上的空白位置或从菜单中选择其他选项(例如,保存,显示解决方案 ...

2 设置最大执行时间

我在jquery中有一个函数,其中有一个while循环,可能需要几秒钟才能完成。 在Chrome浏览器中,脚本运行速度很快,但是在Firefox中,相同的脚本将UI线程阻塞的时间过长。 因此,我想为此功能设置一个超时时间,如果它在一秒钟内还没有完成,那么我退出它。 有可能在jQuery中做 ...

2015-08-24 07:14:32 2 214   jquery
3 SSIS包/ SQL Server代理作业的最大执行时间

我有2个SSIS包,由一个SQL Server代理作业启动。 第一个包裹耗时约2h30,第二个包裹在0:50之后失败。 不幸的是,我不知道它在哪里或为什么失败,但是我想首先检查一下分配给SSIS包或SQL Server作业的最大执行时间是否存在某些限制。 有没有类似的东西? ...

4 在PHP中设置最大执行时间

我试图增加php.ini文件中的最大执行时间。 但是,它不起作用。 考虑到我必须使用PHPEXCEL下载一个大文件(包含300页)的事实,我在php. ini做了以下操作php. ini php. ini文件: 有谁知道在这种情况下该怎么办? ...

2015-04-21 16:01:22 3 642   php
5 在函数上设置最大执行时间

我在客户端(cordova 应用程序)使用pdfmake生成 PDF 文件。 文档定义越复杂, pdfmake生成文档所需的时间就越长。 因此,我的目的是对pdfmake生成文档所需的时间设置硬性限制,例如 bash 中的timeout命令所做的事情,并指示用户是否无法完成。 这是我正在尝试做 ...

6 如何使用ajax设置最大执行时间(获取)

检索大量数据时出现错误“ 500 Internal Server Error”。 当我选择一个只有10个城市的国家时,它会起作用,但是当我选择一个拥有10万个城市的国家时,就会发生错误。 有什么解决办法吗? 我的剧本 我的控制器 ...

7 在MYSQL / PHP中设置最大执行时间

我有一个XML文档,其中包含大约48,000个子级(〜50MB)。 我运行INSERT MYSQL查询,为这些子项中的每个子项都创建新条目。 问题是,由于其大小,它需要很多时间。 执行后,我收到这个 Fatal error: Maximum execution time of 60 s ...

8 Python os.system - 设置最大执行时间

我有一个简单的函数,旨在解析 IP 并在 Windows 机器上执行 ipwhois,在多个 txt 文件中打印输出: 碰巧这个 os.system 调用卡住了,整个过程都冻结了。 问题:是否可以在 os.system 命令上设置最大执行时间? 编辑 这有效: ...

9 设置exec()的最大执行时间[具体]

这个问题在这里已有答案: 限制函数或命令的执行时间PHP 6答案 是否可以设置exec($command)函数的最大执行时间? 有时执行我的$command持续1分钟后停止并显示此错误: 致命错误:第51行的C:\\ xampp \\ htdocs \\ ...

2010-02-04 18:59:37 3 42973   php/ exec
10 设置最大执行时间会导致Laravel死亡

我正在部署我编写的Laravel应用程序。 该应用程序使用Office365通过SMTP发送电子邮件-不幸的是,Office365的运行速度非常慢。 在本地计算机上,我将最大执行时间提高了60秒,这解决了该问题。 我现在遇到的问题是,由于公司使用共享托管,因此无法在生产环境中全 ...

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2022 STACKOOM.COM