Sqlserver
 sql >> Baza danych >  >> RDS >> Sqlserver

Limit czasu zadania agenta serwera SQL

Robimy coś takiego jak poniższy kod jako część podsystemu przetwarzania pracy nocnej - jest to bardziej skomplikowane niż w rzeczywistości; na przykład przetwarzamy wiele współzależnych zestawów zadań i wczytujemy nazwy zadań i wartości limitów czasu z tabel konfiguracyjnych - ale to oddaje ideę:

    DECLARE @JobToRun NVARCHAR(128) = 'My Agent Job'
DECLARE @dtStart DATETIME = GETDATE(), @dtCurr DATETIME
DECLARE @ExecutionStatus INT, @LastRunOutcome INT, @MaxTimeExceeded BIT = 0
DECLARE @TimeoutMinutes INT = 180 

EXEC msdb.dbo.sp_start_job @JobToRun
SET @dtCurr = GETDATE()
WHILE 1=1
BEGIN
    WAITFOR DELAY '00:00:10'
    SELECT @ExecutionStatus=current_execution_status, @LastRunOutcome=last_run_outcome 
    FROM OPENQUERY(LocalServer, 'set fmtonly off; exec msdb.dbo.sp_help_job') where [name] = @JobToRun
    IF @ExecutionStatus <> 4
    BEGIN -- job is running or finishing (not idle)
        SET @dtCurr=GETDATE()
        IF DATEDIFF(mi, @dtStart, @dtCurr) > @TimeoutMinutes
        BEGIN   
            EXEC msdb.dbo.sp_stop_job @[email protected]                   
            -- could log info, raise error, send email etc here
        END
        ELSE
        BEGIN
            CONTINUE
        END
    END
    IF @LastRunOutcome = 1  -- the job just finished with success flag
    BEGIN
        -- job succeeded, do whatever is needed here
        print 'job succeeded'                                   
    END

END


  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Czy LINQ-to-SQL może pominąć nieokreślone kolumny podczas wstawiania, aby była używana wartość domyślna bazy danych?

  2. jak sprawić, by zawartość tabeli wyświetlała się automatycznie w formie pop-up

  3. Czy istnieje sposób na określenie nazwy tabeli jako ciągu?

  4. SQL Server Zmień lokalizację pliku TempDB

  5. SQL - Jak przechowywać i nawigować w hierarchiach?