The OpenNET Project / Index page

[ новости /+++ | форум | теги | ]

форумы  помощь  поиск  регистрация  майллист  ВХОД  слежка  RSS
"Триггеры на PostgreSQL"
Вариант для распечатки  
Пред. тема | След. тема 
Форумы OpenNET: Виртуальная конференция (Public)
Изначальное сообщение [Проследить за развитием треда]

"Триггеры на PostgreSQL"  
Сообщение от MORPHEUS email on 26-Фев-07, 15:24 
Уважаемые гуру, решил реализовать задачу выполнения задиний в запланированное время, которые помещаются в базу данных.

Подробнее:

Имеется:

1. Таблица jobs (id,type,time)

2. Данные в таблицу помещаются через WEB интерфейс.

3. Критичность времени 1 секунда, т.е. в time время в которое должна выполниться задача с точностью до 1-й секунды.

Вопросы:

Можно ли решить задачу срабатывания триггера или функции в самом PostgreSQL в назначенное время time.

Или подскажите как из PostgreSQL передать параметры id,type,time во внешнее приложение (допустим сервис).

З.Ы. предполагается использовать на FreeBSD или openSUSE.

Высказать мнение | Ответить | Правка | Наверх | Cообщить модератору

 Оглавление

Сообщения по теме [Сортировка по времени, UBB]


1. "Триггеры на PostgreSQL"  
Сообщение от pavel_simple (ok) on 26-Фев-07, 15:29 
а зачем так сложно
пусть внешняя программа коннектиться на сервер и запускает процедуру и т.д. и т.п.
bash + psql = то что надо.
Высказать мнение | Ответить | Правка | Наверх | Cообщить модератору

2. "Триггеры на PostgreSQL"  
Сообщение от MORPHEUS email on 26-Фев-07, 15:42 
>а зачем так сложно
>пусть внешняя программа коннектиться на сервер и запускает процедуру и т.д. и
>т.п.
>bash + psql = то что надо.

Запускать скрипт 1раз в сек?

Не вопрос, так сейчас и реализовано, но при 10000 задач в секунду :(

Реализовано на PHP+MySQL+Service(C++), но у меня мысль перейти на Постгресс, и вопрос состоит в том чтобы по максимуму реализовать это в БД.

Высказать мнение | Ответить | Правка | Наверх | Cообщить модератору

3. "Триггеры на PostgreSQL"  
Сообщение от MORPHEUS email on 26-Фев-07, 15:46 
>а зачем так сложно
>пусть внешняя программа коннектиться на сервер и запускает процедуру и т.д. и
>т.п.
>bash + psql = то что надо.

И еще почему бы на Постгресс не использовать триггер при записи новой задачи? И передать пареметры из триггера в сервис.

Высказать мнение | Ответить | Правка | Наверх | Cообщить модератору

4. "Триггеры на PostgreSQL"  
Сообщение от PavelR email(??) on 26-Фев-07, 17:21 
>>а зачем так сложно
>>пусть внешняя программа коннектиться на сервер и запускает процедуру и т.д. и
>>т.п.
>>bash + psql = то что надо.
>
>И еще почему бы на Постгресс не использовать триггер при записи новой
>задачи? И передать пареметры из триггера в сервис.


откуда берут таких проектировщиков ?

мы же не знаем что там за задачи, их число, частота изменения, быстрота реакции на изменения и т.д. и т.п.

и даже понять что такое задача по описанию - не представляется возможным.

вариант реализации:

берешь пишешь программу, постоянно выполняющуюся и вызывающую задачи.
выбираешь из БД время следующего вызова задачи, и спишь до наступления этого момента(в) + периодически обновляешся за поступлением новых задач (если это допустимо скажем сделать раз в минуту)

Высказать мнение | Ответить | Правка | Наверх | Cообщить модератору

5. "Триггеры на PostgreSQL"  
Сообщение от MORPHEUS email on 26-Фев-07, 17:40 
>>>а зачем так сложно
>>>пусть внешняя программа коннектиться на сервер и запускает процедуру и т.д. и
>>>т.п.
>>>bash + psql = то что надо.
>>
>>И еще почему бы на Постгресс не использовать триггер при записи новой
>>задачи? И передать пареметры из триггера в сервис.
>
>
>откуда берут таких проектировщиков ?
>
>мы же не знаем что там за задачи, их число, частота изменения,
>быстрота реакции на изменения и т.д. и т.п.
>
>и даже понять что такое задача по описанию - не представляется возможным.
>
>
>вариант реализации:
>
>берешь пишешь программу, постоянно выполняющуюся и вызывающую задачи.
>выбираешь из БД время следующего вызова задачи, и спишь до наступления этого
>момента(в) + периодически обновляешся за поступлением новых задач (если это допустимо
>скажем сделать раз в минуту)

Еще раз говорю, есть программа (сервис), проверяющий с частотой 1 раз в сек список заданий, при нахождении порождает процесс который "ждет" момента выполнения!

А вопрос я задавал
ВОЗМОЖНО ЛИ И КАК ИСПОЛЬЗОВАТЬ ТРИГГЕРЫ ДЛЯ ПЕРЕДАЧИ СЕРВИСУ ЗАДАЧИ И ВРЕМЕНИ ИСПОЛНЕНИЯ.

Высказать мнение | Ответить | Правка | Наверх | Cообщить модератору

6. "Триггеры на PostgreSQL"  
Сообщение от Brainbug (ok) on 26-Фев-07, 19:15 
>>>>а зачем так сложно
>>>>пусть внешняя программа коннектиться на сервер и запускает процедуру и т.д. и
>>>>т.п.
>>>>bash + psql = то что надо.
>>>
>>>И еще почему бы на Постгресс не использовать триггер при записи новой
>>>задачи? И передать пареметры из триггера в сервис.
>>
>>
>>откуда берут таких проектировщиков ?
>>
>>мы же не знаем что там за задачи, их число, частота изменения,
>>быстрота реакции на изменения и т.д. и т.п.
>>
>>и даже понять что такое задача по описанию - не представляется возможным.
>>
>>
>>вариант реализации:
>>
>>берешь пишешь программу, постоянно выполняющуюся и вызывающую задачи.
>>выбираешь из БД время следующего вызова задачи, и спишь до наступления этого
>>момента(в) + периодически обновляешся за поступлением новых задач (если это допустимо
>>скажем сделать раз в минуту)
>
>Еще раз говорю, есть программа (сервис), проверяющий с частотой 1 раз в
>сек список заданий, при нахождении порождает процесс который "ждет" момента выполнения!
>
>
>А вопрос я задавал
>ВОЗМОЖНО ЛИ И КАК ИСПОЛЬЗОВАТЬ ТРИГГЕРЫ ДЛЯ ПЕРЕДАЧИ СЕРВИСУ ЗАДАЧИ И ВРЕМЕНИ
>ИСПОЛНЕНИЯ.

Vozmozno mozno pojti s drugoj storoni. Za4em 4to-to kuda-to peredavatj.
Mozno ispolzuja lubije mehanizmi IPC, hotjabi tezhe signali, skazatj serviss processu
4to mol bili izmenenija v baze i v rezultate na storone servisa iniciirovatj sojedinenije
s bazoj i obnovlenije spiska zadanij.

Высказать мнение | Ответить | Правка | Наверх | Cообщить модератору

8. "Триггеры на PostgreSQL"  
Сообщение от pavel_simple (ok) on 26-Фев-07, 22:55 
передать сервису параметры чтоли,,,, так напиши триггер на любом небезапасном языке -- он может запускать программы, с любыми парамтрами. а ещё есть NOTIFY
Высказать мнение | Ответить | Правка | Наверх | Cообщить модератору

9. "Триггеры на PostgreSQL"  
Сообщение от MORPHEUS email on 26-Фев-07, 23:03 
>передать сервису параметры чтоли,,,, так напиши триггер на любом небезапасном языке --
>он может запускать программы, с любыми парамтрами. а ещё есть NOTIFY
>

Сенкс... есдинственны дельный ответ в пользу реализации в БД!!

Высказать мнение | Ответить | Правка | Наверх | Cообщить модератору

7. "Триггеры на PostgreSQL"  
Сообщение от MORPHEUS email on 26-Фев-07, 22:51 
>>>а зачем так сложно
>>>пусть внешняя программа коннектиться на сервер и запускает процедуру и т.д. и
>>>т.п.
>>>bash + psql = то что надо.
>>
>>И еще почему бы на Постгресс не использовать триггер при записи новой
>>задачи? И передать пареметры из триггера в сервис.
>
>
>откуда берут таких проектировщиков ?
>
>мы же не знаем что там за задачи, их число, частота изменения,
>быстрота реакции на изменения и т.д. и т.п.
>
>и даже понять что такое задача по описанию - не представляется возможным.
>
>
>вариант реализации:
>
>берешь пишешь программу, постоянно выполняющуюся и вызывающую задачи.
>выбираешь из БД время следующего вызова задачи, и спишь до наступления этого
>момента(в) + периодически обновляешся за поступлением новых задач (если это допустимо
>скажем сделать раз в минуту)

В догонку:

Пользователь инициирует выполнение задач с type x=[1...n] и в определенное время time, для каждой задачи есть обработчик (т.е. поток в сервисе который порождается при прочтении задачи из БД (в данном случае MySQL)), в сервисе реализован конект к БД каждых 1000ms но... при начале выполнения задачи (по достажению времени time) БД переходит в режим транзакции! критичность задачи 1000ms - промедление недопустимо! В связи с этим задачи ОПАЗДЫВАЮТ, у меня их может быть 10000 в сек. продолжительность каждой задачи не может быть опредена заранее (т.е. при постановке задачи не возможно определить параметры для обработки, возможно только при запуске потока, который в свое время возмет параметры вамолнения из той же БД).

Высказать мнение | Ответить | Правка | Наверх | Cообщить модератору

10. "Триггеры на PostgreSQL"  
Сообщение от pavel_simple (ok) on 26-Фев-07, 23:06 
вообще то интересно всё придуманно, может если задача (в целом) так требовательна по времени и длительности исполнения, то всё таки использование полноценной СУБД здесь вообще неприемлемо. Всё равно както мутно.
Высказать мнение | Ответить | Правка | Наверх | Cообщить модератору

11. "Триггеры на PostgreSQL"  
Сообщение от ТинПу on 27-Фев-07, 03:11 
>1000ms - промедление недопустимо! В связи с этим задачи ОПАЗДЫВАЮТ, у
>меня их может быть 10000 в сек. продолжительность каждой задачи не

Ты прикалы ваешься или в самом деле .... хм далек от компьютеров ?
При таких нагрузках и подход совершенно другой, ты просто попробуй пустых шеллов 10К/сек родить/завершать ....

Удачи и передай дятлам привет! :)

Высказать мнение | Ответить | Правка | Наверх | Cообщить модератору

12. "Триггеры на PostgreSQL"  
Сообщение от MORPHEUS email on 27-Фев-07, 12:35 
>>1000ms - промедление недопустимо! В связи с этим задачи ОПАЗДЫВАЮТ, у
>>меня их может быть 10000 в сек. продолжительность каждой задачи не
>
>Ты прикалы ваешься или в самом деле .... хм далек от компьютеров
>?
>При таких нагрузках и подход совершенно другой, ты просто попробуй пустых шеллов
>10К/сек родить/завершать ....
>
>Удачи и передай дятлам привет! :)

Каких шелов? Ясно же написано, что сервис порождает потоки, а не шеллы!!

З.Ы. Вопрос не стоит в оборудовании, и я настолько далек от компьютеров как ты от собственного носа :)

Высказать мнение | Ответить | Правка | Наверх | Cообщить модератору

13. "Триггеры на PostgreSQL"  
Сообщение от MoRpHeUs email on 02-Мрт-07, 09:56 
Решение найдено :))

http://www.mysql.org/doc/refman/5.1/en/triggers.html
http://www.mysql.org/doc/refman/5.1/en/events.html

MySQL 5 - рулит!!!

Высказать мнение | Ответить | Правка | Наверх | Cообщить модератору

14. "Триггеры на PostgreSQL"  
Сообщение от pavel_simple (ok) on 02-Мрт-07, 15:59 
ну-ну
Высказать мнение | Ответить | Правка | Наверх | Cообщить модератору

15. "Триггеры на PostgreSQL"  
Сообщение от MORPHEUS email on 02-Мрт-07, 16:24 
>ну-ну


:)

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

З.Ы. Правда вопрос стоял об удалении EVENT, пришлось доп. таблицу создать для хранения наименований EVENT ;). Зато теперь все крутится на MySQL+PHP без всяких внешних приложений.

Высказать мнение | Ответить | Правка | Наверх | Cообщить модератору

16. "Триггеры на PostgreSQL"  
Сообщение от PavelR email(??) on 02-Мрт-07, 16:26 
>>ну-ну
>
>
>:)
>
>Да прекрасно все работает, триггером создаешь event который отрабатывает процедуру. по завершении
>event удаляется.
>
>З.Ы. Правда вопрос стоял об удалении EVENT, пришлось доп. таблицу создать для
>хранения наименований EVENT ;). Зато теперь все крутится на MySQL+PHP без
>всяких внешних приложений.

Мда. MySQL+PHP - 10 тысяч событий в секунду )) Самое оно, верной дорогой идете, товарищи )

Высказать мнение | Ответить | Правка | Наверх | Cообщить модератору

17. "Триггеры на PostgreSQL"  
Сообщение от MORPHEUS email on 02-Мрт-07, 16:39 
>>>ну-ну
>>
>>
>>:)
>>
>>Да прекрасно все работает, триггером создаешь event который отрабатывает процедуру. по завершении
>>event удаляется.
>>
>>З.Ы. Правда вопрос стоял об удалении EVENT, пришлось доп. таблицу создать для
>>хранения наименований EVENT ;). Зато теперь все крутится на MySQL+PHP без
>>всяких внешних приложений.
>
>Мда. MySQL+PHP - 10 тысяч событий в секунду )) Самое оно, верной
>дорогой идете, товарищи )

Во первых, событий не 10К в секунду, запросов в пике около 10К (бывает), а вот насчет событий, то ВЫПОЛНЕНИЕ задачи должно начаться с точностью до 1 сек. И все прекрасно рулит.


Высказать мнение | Ответить | Правка | Наверх | Cообщить модератору

18. "Триггеры на PostgreSQL"  
Сообщение от pavel_simple (ok) on 02-Мрт-07, 22:04 
ну-ну , ну не серьёзный человек, мелет чёто.
, не но кроме шуток -- выбрал ведь самую буструю СУБД + самый быстрый ЯП.
чудак.
Высказать мнение | Ответить | Правка | Наверх | Cообщить модератору

Архив | Удалить

Индекс форумов | Темы | Пред. тема | След. тема
Оцените тред (1=ужас, 5=супер)? [ 1 | 2 | 3 | 4 | 5 ] [Рекомендовать для помещения в FAQ]




Партнёры:
PostgresPro
Inferno Solutions
Hosting by Hoster.ru
Хостинг:

Закладки на сайте
Проследить за страницей
Created 1996-2025 by Maxim Chirkov
Добавить, Поддержать, Вебмастеру