Добро пожаловать в форум, Guest  >>   Войти | Регистрация | Поиск | Правила | В избранное | Подписаться
Все форумы / Microsoft SQL Server Новый топик    Ответить
 Как запускать процедуру как джоб?  [new]
Winnipuh
Member [заблокирован]

Откуда: Київ
Сообщений: 10428
Хотелось бы такого:

Есть некая процедура, своеобразный "сборщик мусора" в прикладной базе.
Юзер запускает ее время от времени руками и она делает свою работу.
Юзеры бывают забывчивы, бывают далеки от баз и т.д.
Хотелось бы сделать кроме ручного еще и запуск периодически без участия юзера.
Как бы запускать такую процедуру без участия юзера?
Да, агент и джоб здесь не рассматриваются, это понятно, но юзер может использовать экспресс.
Через брокер - да.
Скажем я храню в базе расписание запусков, "раз в ...".

Как запускать?
11 фев 15, 10:05    [17248214]     Ответить | Цитировать Сообщить модератору
 Re: Как запускать процедуру как джоб?  [new]
Glory
Member

Откуда:
Сообщений: 104751
Winnipuh
Как запускать?

Запустить при старте сервера.
Вручную - не запускать.
11 фев 15, 10:09    [17248231]     Ответить | Цитировать Сообщить модератору
 Re: Как запускать процедуру как джоб?  [new]
Spartakich
Member

Откуда: Riga
Сообщений: 380
Winnipuh,

Windows scheduler + osql
11 фев 15, 10:09    [17248235]     Ответить | Цитировать Сообщить модератору
 Re: Как запускать процедуру как джоб?  [new]
Winnipuh
Member [заблокирован]

Откуда: Київ
Сообщений: 10428
Glory
Winnipuh
Как запускать?

Запустить при старте сервера.
Вручную - не запускать.


Да, можно сделать два исключающих режима, ручной и авто.
Но сервер может стартовать раз в неделю, а процедуру надо запускать скажем раз в сутки.

Даже получается вопрос сводится к тому как, где вкидывать сообщение в очередь с указанной периодичностью, на том конце то процедура уже запустится.

С базой работают клиентские приложения, может на коннекте приложения к базе?
(SQLServer 2008-2014)
11 фев 15, 10:18    [17248274]     Ответить | Цитировать Сообщить модератору
 Re: Как запускать процедуру как джоб?  [new]
Glory
Member

Откуда:
Сообщений: 104751
Winnipuh
Но сервер может стартовать раз в неделю, а процедуру надо запускать скажем раз в сутки.

И что ? Вы не умеете писать процедуры с бесконечным циклом ?
11 фев 15, 10:19    [17248286]     Ответить | Цитировать Сообщить модератору
 Re: Как запускать процедуру как джоб?  [new]
Winnipuh
Member [заблокирован]

Откуда: Київ
Сообщений: 10428
Glory
Winnipuh
Но сервер может стартовать раз в неделю, а процедуру надо запускать скажем раз в сутки.

И что ? Вы не умеете писать процедуры с бесконечным циклом ?


у меня бесконечноциклофобия
11 фев 15, 10:21    [17248290]     Ответить | Цитировать Сообщить модератору
 Re: Как запускать процедуру как джоб?  [new]
Glory
Member

Откуда:
Сообщений: 104751
Winnipuh
Glory
пропущено...

И что ? Вы не умеете писать процедуры с бесконечным циклом ?


у меня бесконечноциклофобия

Написать простенькую обертку, которая прочитает дату-вермя следующего запуска основной процедуры и "заснет" до наступления этой даты ?
11 фев 15, 10:24    [17248305]     Ответить | Цитировать Сообщить модератору
 Re: Как запускать процедуру как джоб?  [new]
invm
Member

Откуда: Москва
Сообщений: 9827
Service Broker + conversation timer
11 фев 15, 10:26    [17248319]     Ответить | Цитировать Сообщить модератору
 Re: Как запускать процедуру как джоб?  [new]
Winnipuh
Member [заблокирован]

Откуда: Київ
Сообщений: 10428
Glory
Winnipuh
пропущено...


у меня бесконечноциклофобия

Написать простенькую обертку, которая прочитает дату-вермя следующего запуска основной процедуры и "заснет" до наступления этой даты ?


Вариант.
Все ли эксцепции удастся выловить и не выпустить за пределы процедуры, чтобы она не сдохла?
11 фев 15, 10:32    [17248355]     Ответить | Цитировать Сообщить модератору
Все форумы / Microsoft SQL Server Ответить