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

Откуда:
Сообщений: 12
Добрый день.
Необходим такой функционал, как: выполнение, а точнее, отправка http запроса по определенному адресу, например, http://qw.ry/index.html?&par1=4444. Выполнение такого запроса необходимо делать при наступлении определенного времени. К примеру, в поле базы есть время 10:05 и вот когда системное время станет = 10:05 этот самый http запрос и должен быть выполнен. Реально ли такое и как это можно сделать. Использовать Триггер на Insert + системная хранимая процедура или пользовательская + SQL Server Agent?
7 сен 09, 11:08    [7625185]     Ответить | Цитировать Сообщить модератору
 Re: автоматизация выполнения заданий  [new]
aleks2
Guest
Нэпонятна... зачем тута SQL сервер?
7 сен 09, 11:10    [7625195]     Ответить | Цитировать Сообщить модератору
 Re: автоматизация выполнения заданий  [new]
densvi
Member

Откуда:
Сообщений: 12
aleks2,

а все просто, хотя я может и не прав. Можно сделать и просто, отдельной программкой следить за временем в поле. Но ... не все хостинги (не считая технологии выделенного сервера, а это не дешево) поддерживают возможность, чтобы висела простая Win32 программулинка и мониторила базу данных.
7 сен 09, 11:24    [7625313]     Ответить | Цитировать Сообщить модератору
 Re: автоматизация выполнения заданий  [new]
Maxx
Member [скрыт]

Откуда:
Сообщений: 24290
возможно... пишите свою процедуру с запросами и запускайте по расписаниюс помощью скл агента
-------------------------------------
Jedem Das Seine
7 сен 09, 11:24    [7625316]     Ответить | Цитировать Сообщить модератору
 Re: автоматизация выполнения заданий  [new]
densvi
Member

Откуда:
Сообщений: 12
Maxx,

а можно ли подробнее, я подразумеваю, следующую последовательность.
Ставим триггер на добавление новой записи (или изменение). При срабатывании триггера, вызываем процедурку (например, системную sp_add_job) и передаем ей в качестве параметров время срабатывания задания из поля базы. Всё. Считаем, что в SQL Агенте нужное задание есть. Еще вопрос возникает, а как собственно отправить этот запрос?
7 сен 09, 11:36    [7625414]     Ответить | Цитировать Сообщить модератору
 Re: автоматизация выполнения заданий  [new]
Maxx
Member [скрыт]

Откуда:
Сообщений: 24290
ну изврат конечно, но у существуещего джоба,есно можно поменть расписание программно.....и он се запуститься по расписанию, толко еще нужно отслеживать что на момент смені расписание джоб не рапотал есно,а вообще ваш первій пост и последний как то савсем не увязіваються с друг другом :(
-------------------------------------
Jedem Das Seine
7 сен 09, 12:02    [7625614]     Ответить | Цитировать Сообщить модератору
 Re: автоматизация выполнения заданий  [new]
Glory
Member

Откуда:
Сообщений: 104760
densvi
Maxx,

а можно ли подробнее, я подразумеваю, следующую последовательность.
Ставим триггер на добавление новой записи (или изменение). При срабатывании триггера, вызываем процедурку (например, системную sp_add_job) и передаем ей в качестве параметров время срабатывания задания из поля базы. Всё. Считаем, что в SQL Агенте нужное задание есть. Еще вопрос возникает, а как собственно отправить этот запрос?

Календари событий работают по-другому.
Постоянно запущенный job периодически сканирует таблицу на предмет наличия событий, чье время выполнения уже наступило. И выполняет эти события
7 сен 09, 12:08    [7625654]     Ответить | Цитировать Сообщить модератору
 Re: автоматизация выполнения заданий  [new]
densvi
Member

Откуда:
Сообщений: 12
Glory,

Скажите, подойдет описанная мною связка или нет? А может нужно использовать CLR в SQL сервере, т.е. писать пользовательские функции?
7 сен 09, 12:21    [7625765]     Ответить | Цитировать Сообщить модератору
 Re: автоматизация выполнения заданий  [new]
Glory
Member

Откуда:
Сообщений: 104760
densvi
Glory,

Скажите, подойдет описанная мною связка или нет? А может нужно использовать CLR в SQL сервере, т.е. писать пользовательские функции?

Для выполнения sp_add_job нужно быть sysadmin-ом или входить в SQLAgentUserRole/SQLAgentReaderRole/SQLAgentOperatorRole. Вам дадут такие права на хостинге ?
7 сен 09, 12:24    [7625791]     Ответить | Цитировать Сообщить модератору
 Re: автоматизация выполнения заданий  [new]
densvi
Member

Откуда:
Сообщений: 12
Glory,

sysadmin - отпадает конечно же :-(
про SQL Agent задал вопрос - жду ответа, но вероятность мала. Остается использовать CLR ???
7 сен 09, 12:41    [7625936]     Ответить | Цитировать Сообщить модератору
 Re: автоматизация выполнения заданий  [new]
Glory
Member

Откуда:
Сообщений: 104760
densvi
Glory,

sysadmin - отпадает конечно же :-(
про SQL Agent задал вопрос - жду ответа, но вероятность мала. Остается использовать CLR ???

А кто проверит, что ваша CLR не несет вредоносного кода ? Она же будет выполняться с правами учетки сервера
7 сен 09, 12:44    [7625964]     Ответить | Цитировать Сообщить модератору
 Re: автоматизация выполнения заданий  [new]
densvi
Member

Откуда:
Сообщений: 12
Glory,

как-то грустно все тогда, лучше типа купить выделенный сервер и там хоститься?
7 сен 09, 13:05    [7626135]     Ответить | Цитировать Сообщить модератору
 Re: автоматизация выполнения заданий  [new]
Glory
Member

Откуда:
Сообщений: 104760
densvi
Glory,

как-то грустно все тогда, лучше типа купить выделенный сервер и там хоститься?

А зачем вам CLR, если не секрет ?
7 сен 09, 13:07    [7626157]     Ответить | Цитировать Сообщить модератору
 Re: автоматизация выполнения заданий  [new]
densvi
Member

Откуда:
Сообщений: 12
Glory,

я просто обдумываю все возможные варианты для решения задачи в моем первом посте.
Есть 3 варианта в принципе:
1. Триггер на Insert + хранимка + SQL Agent
2. CLR
3. Выделенный сервер + Win32 программулина.
7 сен 09, 13:38    [7626402]     Ответить | Цитировать Сообщить модератору
 Re: автоматизация выполнения заданий  [new]
Glory
Member

Откуда:
Сообщений: 104760
densvi
Glory,

я просто обдумываю все возможные варианты для решения задачи в моем первом посте.
Есть 3 варианта в принципе:
1. Триггер на Insert + хранимка + SQL Agent
2. CLR
3. Выделенный сервер + Win32 программулина.

А вариант с постоянно работающим job-ом ?
7 сен 09, 13:40    [7626423]     Ответить | Цитировать Сообщить модератору
 Re: автоматизация выполнения заданий  [new]
densvi
Member

Откуда:
Сообщений: 12
Glory
densvi
Glory,

я просто обдумываю все возможные варианты для решения задачи в моем первом посте.
Есть 3 варианта в принципе:
1. Триггер на Insert + хранимка + SQL Agent
2. CLR
3. Выделенный сервер + Win32 программулина.

А вариант с постоянно работающим job-ом ?


а что под этим понимается?
7 сен 09, 14:44    [7626871]     Ответить | Цитировать Сообщить модератору
 Re: автоматизация выполнения заданий  [new]
Glory
Member

Откуда:
Сообщений: 104760
densvi
Glory
densvi
Glory,

я просто обдумываю все возможные варианты для решения задачи в моем первом посте.
Есть 3 варианта в принципе:
1. Триггер на Insert + хранимка + SQL Agent
2. CLR
3. Выделенный сервер + Win32 программулина.

А вариант с постоянно работающим job-ом ?


а что под этим понимается?

Читайте внимательно данные выше ответы
7 сен 09, 14:47    [7626890]     Ответить | Цитировать Сообщить модератору
 Re: автоматизация выполнения заданий  [new]
densvi
Member

Откуда:
Сообщений: 12
Glory,

Я и читал, думаю, вы имеете ввиду вот это:
"Постоянно запущенный job периодически сканирует таблицу на предмет наличия событий, чье время выполнения уже наступило. И выполняет эти события" - если бы я понял как это реализовать, я бы не спрашивал, логично?

кстати про Агента можно забыть, т.к. хостеры сказали, что агент конечно работать будет, но вот доступа к нему на нужном уровне нет. А вот CLR - пожалуйста.
7 сен 09, 15:13    [7627118]     Ответить | Цитировать Сообщить модератору
 Re: автоматизация выполнения заданий  [new]
Glory
Member

Откуда:
Сообщений: 104760
densvi
Glory,

Я и читал, думаю, вы имеете ввиду вот это:
"Постоянно запущенный job периодически сканирует таблицу на предмет наличия событий, чье время выполнения уже наступило. И выполняет эти события" - если бы я понял как это реализовать, я бы не спрашивал, логично?


И что из этого вы не можете реализовать ?
7 сен 09, 15:14    [7627136]     Ответить | Цитировать Сообщить модератору
 Re: автоматизация выполнения заданий  [new]
densvi
Member

Откуда:
Сообщений: 12
Glory
densvi
Glory,

Я и читал, думаю, вы имеете ввиду вот это:
"Постоянно запущенный job периодически сканирует таблицу на предмет наличия событий, чье время выполнения уже наступило. И выполняет эти события" - если бы я понял как это реализовать, я бы не спрашивал, логично?


И что из этого вы не можете реализовать ?


Что такое постоянно запущенный job ? Это я должен при настройках SQL сервера настроить некторый job, указав ему периодичность выполнения и ЧТО ЗАПУСКАТЬ (если я правильно понимаю, то хранимку или пользовательскую ф-ию)? а же эта хранимка сканирует таблицу, сравнивает значение поля с системным временем и если совпадает, то запускает другую пользовательскую ф-ию для выполнения http запроса. Я правильно понимаю?
8 сен 09, 09:30    [7629723]     Ответить | Цитировать Сообщить модератору
 Re: автоматизация выполнения заданий  [new]
залётный
Guest
Создаете job, в нем примерно такой код:
 if getdate() = select you_field from you_table
 exec you_proc
и запускаете его постоянно.

а можете извратиться и написать такую процедурку
while 1=1
 if getdate() = select you_field from you_table
 exec you_proc
и поставить ее в job, который будет запускаться при запуске агента.
8 сен 09, 11:08    [7630264]     Ответить | Цитировать Сообщить модератору
Все форумы / Microsoft SQL Server Ответить