powered by simpleCommunicator - 2.0.60     © 2026 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / Microsoft SQL Server [игнор отключен] [закрыт для гостей] / Остановка и перезапуск джоба в автоматическом режиме.
6 сообщений из 6, страница 1 из 1
Остановка и перезапуск джоба в автоматическом режиме.
    #39851546
dermama
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Коллеги, добрый день.
Ситуация следующая.
Необходимо реализовать процесс остановки джоба(запускает процедуру) после его запуска, в случае, если произойдет событие,(добавиться новая дата в таблицу) и тут же перезапускать его заново. После остановки и перезапука может появиться новая дата в таблице и процесс должен быть повторен. Так до тех пор, пока появление новых дат не прекратиться окончательно.

Можно это как то реализовать, посредством триггера, к примеру, или есть другие варианты?

Была задумка по ID Джоба (нашел его процедурой msdb.dbo.sp_help_job) сделать таблицу с флагами - 1 - джоб работает, 0 - джоб не работает.
Возможно, вы можете предложить другие варианты.
Заранее благодарен.
...
Рейтинг: 0 / 0
Остановка и перезапуск джоба в автоматическом режиме.
    #39851549
andy st
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
dermama,
1. дождаться наступления события "..пока появление новых дат не прекратиться окончательно."
2. запустить джоб
?
...
Рейтинг: 0 / 0
Остановка и перезапуск джоба в автоматическом режиме.
    #39851558
Фотография Критик
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
dermama,

положите ваш функционал проверок сразу в джоб
...
Рейтинг: 0 / 0
Остановка и перезапуск джоба в автоматическом режиме.
    #39851593
dermama
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
andy st,

иногда добавление новых дат может происходить утром, но в основном днем - поэтому и требуется автоматизация.
...
Рейтинг: 0 / 0
Остановка и перезапуск джоба в автоматическом режиме.
    #39851630
Minamoto
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
dermamaВозможно, вы можете предложить другие варианты.
Зависит от того, из чего состоит процедура. Если основное время занимает один большой запрос - то насколько целесообразно его прерывание?

Если есть много равномерных по времени кусков кода или цикл - то можно между ними (или в цикл) добавить проверку наличия новых записей с момента запуска, если новая запись обнаружена - кидать ошибку, в настройках джоба по ошибке сделать повторный запуск.
...
Рейтинг: 0 / 0
Остановка и перезапуск джоба в автоматическом режиме.
    #39852174
Гулин Федор
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
не зная логики чего тоже сложно угадать

но вот допустим если внутненность логики не тяжелая
можно просто зациклить жоб - каждые 10 минут
если там что есть - он сделает
если нет - то и все
это прокатывает допустим
в догрузке данных по
SELECT top 1000
но конечно не всегда

PS
стопнуть жоб не проблема - из другого жоба
проверил статус и стопнул если что
вот кусок не мой - но РАБОЧИЙ
а вот что получится в результате стопа того жоба - знать может только автор.
Мне вот самому интересно если там открыто скажем 3 транзакции - по идее они должны корректно откатиться ??

Код: sql
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
21.
22.
23.
24.
25.
26.
27.
28.
29.
30.
31.
32.
33.
34.
35.
36.
37.
38.
DECLARE job_id CURSOR
FOR
SELECT      job.job_id
FROM      msdb.dbo.sysjobs_view job
JOIN
    msdb.dbo.sysjobactivity activity
	ON     job.job_id = activity.job_id
JOIN
    msdb.dbo.syssessions sess
	ON     sess.session_id = activity.session_id
JOIN
(
    SELECT
        MAX( agent_start_date ) AS max_agent_start_date
    FROM
        msdb.dbo.syssessions
) sess_max
ON
    sess.agent_start_date = sess_max.max_agent_start_date
WHERE 
    run_requested_date IS NOT NULL AND 
    stop_execution_date IS NULL 
	AND    job.name IN (N'job1', N'job12')

OPEN job_id

DECLARE @Job_id UNIQUEIDENTIFIER

FETCH FROM job_id INTO @Job_id
WHILE @@FETCH_STATUS = 0
BEGIN
	
	EXEC dbo.sp_stop_job @job_id = @Job_id
	
FETCH FROM job_id INTO @Job_id
END
CLOSE job_id
DEALLOCATE job_id
...
Рейтинг: 0 / 0
6 сообщений из 6, страница 1 из 1
Форумы / Microsoft SQL Server [игнор отключен] [закрыт для гостей] / Остановка и перезапуск джоба в автоматическом режиме.
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]