powered by simpleCommunicator - 2.0.53     © 2025 Programmizd 02
Форумы / PostgreSQL [игнор отключен] [закрыт для гостей] / Джобы в PostgreSQL
25 сообщений из 27, страница 1 из 2
Джобы в PostgreSQL
    #39385833
andrsam
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Здравствуйте!

Не посоветуете наилучшее решение для реализации джобов в PostgreSQL? Слышал, что штатный pgAgent на Linux работает плохо, так ли это?
...
Рейтинг: 0 / 0
Джобы в PostgreSQL
    #39385855
dezconnect
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
andrsam,

в линуксе же есть cron
...
Рейтинг: 0 / 0
Джобы в PostgreSQL
    #39385865
Фотография mefman
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
andrsamЗдравствуйте!

Не посоветуете наилучшее решение для реализации джобов в PostgreSQL? Слышал, что штатный pgAgent на Linux работает плохо, так ли это?
Он ни разу не штатный. Ацкое говно. Не использовать ни в коем случае.
Cron - как раз штатный ))
...
Рейтинг: 0 / 0
Джобы в PostgreSQL
    #39385898
Alex__kK
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
andrsam,

других-то альтернатив все равно нет...
...
Рейтинг: 0 / 0
Джобы в PostgreSQL
    #39386138
mad_nazgul
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Alex__kKandrsam,

других-то альтернатив все равно нет...

Альтернатив много.
Непонятно зачем делать из БД комбайн.

Есть штатные средства ОС.
Ими удобнее делать периодические задачи.
Зачем это Г в БД?!
...
Рейтинг: 0 / 0
Джобы в PostgreSQL
    #39386166
andrsam
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
mad_nazgul, а как же Oracle?
...
Рейтинг: 0 / 0
Джобы в PostgreSQL
    #39386169
p2.
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
mad_nazgulНепонятно зачем делать из БД комбайн.Чтобы не делать комбайн из разработчика, когда он помимо postgres должен знать cron, windows scheduler и как корректно настроить на разных платформах авторизацию, чтобы при смене пароля в БД вдруг не оказалось, что перестали работать джобы.
...
Рейтинг: 0 / 0
Джобы в PostgreSQL
    #39386303
qwwq
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
p2.,

согласен. но пжогент написан левой ногой, к сож.
...
Рейтинг: 0 / 0
Джобы в PostgreSQL
    #39386650
Alex__kK
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
mad_nazgul,

Ну и какие имеются альтернативы, кроме средств ОС?
...
Рейтинг: 0 / 0
Джобы в PostgreSQL
    #39386653
Alex__kK
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
mad_nazgulAlex__kKandrsam,

других-то альтернатив все равно нет...

Есть штатные средства ОС.
Ими удобнее делать периодические задачи.
Зачем это Г в БД?!

Штатными средствами ОС не удобно, это надо опять какую-то оболочку писать, чтобы из БД можно было бы создать задание cron, а если винда?

А так же бывает логика работы приложений построена на джобах, то есть в зависимости от какого-то события запускается джоб, который выполняет какую-то работу, а сессия, запустившая этот джоб при этом занимается уже другой деятельностью (ну типа асинхронно). При этом очень удобно запускать джобы именно из pl/pgsql процедур.
...
Рейтинг: 0 / 0
Джобы в PostgreSQL
    #39386726
qwwq
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Alex__kK,

вообще-то когда и если напишут аналог пжогента на вот этом базисе:
https://www.postgresql.org/docs/current/static/bgworker.html
он должен (думаю) стать понадёжнее. (по части поднятия себя из мёртвых)

но это работа не для колхозников
к сож. никого других в пж--соёбществе видимо уже и нет.
т.ч. ждать придёцца долго.


кто--то тут упоминал пж_крон 19922390 -- потрогайте. я не соприкасался.
...
Рейтинг: 0 / 0
Джобы в PostgreSQL
    #39386738
Alex__kK
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
qwwq,

Поэтому я и говорю, что особо-то альтернатив-то и нету....

пж_крон не смотрел и не юзал, как он по надежности и удобству тоже не знаю, но что-то мне подсказывает что те же яйца, только в профиль
...
Рейтинг: 0 / 0
Джобы в PostgreSQL
    #39386749
qwwq
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Alex__kK,

основная проблема пжогента -- косяки в работе с "зомбями". Т.е. неправильно прописан анализ собственных табличек пжогента после старта после краха (на произвольном этапе обработки задания), например. Т.е. люди как--то не тем место думали. Рестарт воркера(сервиса) можно настроить средствами ОС + мониторить, а вот косяки логики самого рестарта -- увы -- только внутре.
...
Рейтинг: 0 / 0
Джобы в PostgreSQL
    #39387326
mad_nazgul
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Alex__kKmad_nazgul,

Ну и какие имеются альтернативы, кроме средств ОС?

Любой сторонний шедулер.
...
Рейтинг: 0 / 0
Джобы в PostgreSQL
    #39387329
mad_nazgul
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
p2.mad_nazgulНепонятно зачем делать из БД комбайн.Чтобы не делать комбайн из разработчика, когда он помимо postgres должен знать cron, windows scheduler и как корректно настроить на разных платформах авторизацию, чтобы при смене пароля в БД вдруг не оказалось, что перестали работать джобы.

Причем тут периодичные задания и разработчик?!
Это ни разу не его работа.
Это работа администратора.
Который настраивает задания и периодичность, вплоть до секунды.
Ну и соответственно решает проблемы с авторизацией и пр.

А разработчика не желательно привлекать к задачам администрирования.
У них "мозг" под другое заточен.
Разработчик скорее создаст свой костыльный велосипед, чем решит проблему с помощью стандартных средств.
:-)
...
Рейтинг: 0 / 0
Джобы в PostgreSQL
    #39387526
p2.
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
mad_nazgulЭто работа администратора.У каждого свои представления о распределении обязанностей.
То, что СУБД что-то не позволяет разработчику, а он не сует нос дальше SQL, это отнюдь не означает, что результат получится надежным, эффективным и обойдется дешевле. Это дополнительные коммуникации с еще и админом в процессе принятия архитектурных решений, разработки и дополнительные манипуляции при деплое и сопровождении.
Если система эксплуатируется на множестве площадок множества заказчиков, любые дополнительные компоненты аыливаются в множество часов поддержки.
...
Рейтинг: 0 / 0
Джобы в PostgreSQL
    #39387533
Alex__kK
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
mad_nazgul,

а если логика приложения построена на джобах? и джобы должны запускаться в зависимости от каких-то событий в БД? Тут уже одним администратором не отделаешься. А если таких систем не одна а сотни....
...
Рейтинг: 0 / 0
Джобы в PostgreSQL
    #39387602
mad_nazgul
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Alex__kKmad_nazgul,

а если логика приложения построена на джобах? и джобы должны запускаться в зависимости от каких-то событий в БД? Тут уже одним администратором не отделаешься. А если таких систем не одна а сотни....

В зависимости от каких событий в БД?!
Если все события в БД могут описаны ч/з SQL, то на соответствующие таблицы могут быть навешаны, например, триггеры.
Если нет... То это уже не проблема программиста, а проблема DBA. ;-)

Вот зачем тут Job-ы не понятно.
...
Рейтинг: 0 / 0
Джобы в PostgreSQL
    #39387616
mad_nazgul
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
p2.У каждого свои представления о распределении обязанностей.
То, что СУБД что-то не позволяет разработчику, а он не сует нос дальше SQL, это отнюдь не означает, что результат получится надежным, эффективным и обойдется дешевле.


Э-э-э как бы законы Мерфи нам намекают, что чем проще система, тем меньше ошибок в ней.
Сложная система с кучей состояний дает бесконечное число ошибок.

Смотрел один доклад, в котором докладчик рассказывал про сложность работы с датами.
Например, не факт, что после 31 декабря будет 1 января. Вполне может оказаться и 9 января.
Ну "погасили" сервера перед праздничными каникулами.

Так что по возможности скрипты должны быть написаны так, чтобы они меняли состояние, без привязки к периодичности.
Если они написаны так, то все равно когда и откуда (в смысле инструмента) они будут выполнятся.

p2.Это дополнительные коммуникации с еще и админом в процессе принятия архитектурных решений, разработки и дополнительные манипуляции при деплое и сопровождении.


Вы говорите, как будто это плохо.
Вот как раз на стадии проектирования БД нужно активно анализировать как будут эксплуатировать систему.

p2.Если система эксплуатируется на множестве площадок множества заказчиков, любые дополнительные компоненты аыливаются в множество часов поддержки.

Опять же принцип "разделяй и властвуй".
Вместо того, чтобы разделить задачу на более простые подзадачи.
Программист пишет скрипты, которые надо выполнить, а администратор определяет сам когда они будут выполнены и ч/з какой удобный для него инструмент.
Мы предлагаем внедрить "комбайн", который типа может все.
А потом админу учить каждый новый костыльный велосипед, который приумал разработчик и/или вендор, чтобы периодичные оттюнинговать время выполнения и продолжительность выполнения скриптов, т.к. они могут намертов вешать систему в самый отвеnственный момент. :-)
...
Рейтинг: 0 / 0
Джобы в PostgreSQL
    #39387742
p2.
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
mad_nazgulчем проще система, тем меньше ошибок в нейВнешние джобы дополнительный компонент с отдельным интерфейсом. Сложность +1.

mad_nazgulпотом админу учить каждый новый костыльный велосипедв очередной раз примеряешь отсутствие встроенного в СУБД стандартного инструмента на частную организацию труда. В оракле не требуется "велосипед". Программист пишет "создать джоб" с требуемым расписанием или для асинхронного выполнения по событию. Ему не требуется тратить время на пересказывание требований админу. Не требуется запрашивать и ждать логи ОС или сидеть вместе и пялиться в логи ОС, когда джоб не сработал. Не требуется оговаривать, что в этом релизе, помимо sql-скрипта, нужно еще сделать то-то и то-то. Не требуется договариваться с админом во время разового массового обновления на короткое время отключить мешающий этому обновлению джоб.

mad_nazgulВы говорите, как будто это плохо.Я говорю про дополнительные коммуникации в процессе разработки и сопровождения - увеличение продолжительности разработки, решения инцидентов, дополнительная оплата труда.

mad_nazgulразделить задачу на более простые подзадачи.Да-да. Разделим написание программ между сто одним кодером, где каждый умеет нажимать определенную клавишу, но зато очень быстро! Вот только сколько времени уйдет на это разделение и синхронизацию выполнения...
...
Рейтинг: 0 / 0
Джобы в PostgreSQL
    #39388097
fraks
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Alex__kKШтатными средствами ОС не удобно, это надо опять какую-то оболочку писать, чтобы из БД можно было бы создать задание cron, а если винда?


Если винда - то можно поставить nnCronLite - будет так же как в линуксах на cron.
Ну или очень похоже.
...
Рейтинг: 0 / 0
Джобы в PostgreSQL
    #39388110
Alex__kK
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
mad_nazgulAlex__kKmad_nazgul,

а если логика приложения построена на джобах? и джобы должны запускаться в зависимости от каких-то событий в БД? Тут уже одним администратором не отделаешься. А если таких систем не одна а сотни....

В зависимости от каких событий в БД?!
Если все события в БД могут описаны ч/з SQL, то на соответствующие таблицы могут быть навешаны, например, триггеры.
Если нет... То это уже не проблема программиста, а проблема DBA. ;-)

Вот зачем тут Job-ы не понятно.

Триггерами не всегда обойдешься. Например, в БД лежат какие-то сущности, есть какая-то сессия, которая добавляет в БД эти сущности и следит за их состоянием, так вот, например, при переходе сущности из одного состояния в другое, необходимо запустить какую-то обработку, которая занимает какое-то ощутимое время. Если мы запускаем эту обработку в этой сессии, которая следит за состоянием сущностей (напрямую или через триггеры), то эта сессия и будет как раз и выполнять данную обработку и соответственно тормозиться, пока не пройдет обработка. Вместо этого мы из данной сессии создаем и запускаем джоб, в котором запускаем обработку (асинхронно), а сессия, которая обрабатывает статусы сущностей пашет дальше и не тормозится.
...
Рейтинг: 0 / 0
Джобы в PostgreSQL
    #39388111
Alex__kK
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
fraksAlex__kKШтатными средствами ОС не удобно, это надо опять какую-то оболочку писать, чтобы из БД можно было бы создать задание cron, а если винда?


Если винда - то можно поставить nnCronLite - будет так же как в линуксах на cron.
Ну или очень похоже.

Можно, но зачем те же яйца только в профиль? Тем более что если мы хотим запускать какие-то джобы из БД, то все равно придется писать какие-то нахлобучки... пжагент хотябы унифицированная более менее изведанная вещь, которая поддерживается разработчиком.
...
Рейтинг: 0 / 0
Джобы в PostgreSQL
    #39388187
mad_nazgul
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Alex__kKТриггерами не всегда обойдешься. Например, в БД лежат какие-то сущности, есть какая-то сессия, которая добавляет в БД эти сущности и следит за их состоянием, так вот, например, при переходе сущности из одного состояния в другое, необходимо запустить какую-то обработку, которая занимает какое-то ощутимое время. Если мы запускаем эту обработку в этой сессии, которая следит за состоянием сущностей (напрямую или через триггеры), то эта сессия и будет как раз и выполнять данную обработку и соответственно тормозиться, пока не пройдет обработка. Вместо этого мы из данной сессии создаем и запускаем джоб, в котором запускаем обработку (асинхронно), а сессия, которая обрабатывает статусы сущностей пашет дальше и не тормозится.

Так это к крону вообще никакого отношения не имеет.
Да и к БД тоже.
Вы описали, то что должен делать сервер приложений, т.е. это бизнес-логика.
Изменение состояния сущностей.
Причем как и что, по мне, удобнее вынести в более подходящий ЯП.
Чем городить фрянкинпуха.

Я по этому и против "создания" комбайнов.
Но вендорам это очень нравиться.
Т.к. вендор лок и никуда ты не денешься.
Переход на другие решения это страдания и боль.
Посмотрите "истории успеха" перехода с одной БД на другую.
Хотя все вроде бы стандарты SQL блюдут :-)
...
Рейтинг: 0 / 0
Джобы в PostgreSQL
    #39388194
mad_nazgul
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
p2.Внешние джобы дополнительный компонент с отдельным интерфейсом. Сложность +1.


Нет сложность остается та же самая.
Просто перераспределяется по другому.
Где-то ушло, куда-то пришло ;-)

p2.в очередной раз примеряешь отсутствие встроенного в СУБД стандартного инструмента на частную организацию труда. В оракле не требуется "велосипед". Программист пишет "создать джоб" с требуемым расписанием или для асинхронного выполнения по событию. Ему не требуется тратить время на пересказывание требований админу. Не требуется запрашивать и ждать логи ОС или сидеть вместе и пялиться в логи ОС, когда джоб не сработал. Не требуется оговаривать, что в этом релизе, помимо sql-скрипта, нужно еще сделать то-то и то-то. Не требуется договариваться с админом во время разового массового обновления на короткое время отключить мешающий этому обновлению джоб.


Ага. А потом админ материт криворукого программиста, который либо поставил джоб в самый час пик.
Либо на каждый чих. Либо не учел, что может быть "профилактика" и джоб отработал так, что покарежил пол базы.

p2.Я говорю про дополнительные коммуникации в процессе разработки и сопровождения - увеличение продолжительности разработки, решения инцидентов, дополнительная оплата труда.


Так они ни куда не денутся. Просто вылезут на продакшене, когда база ляжет. :-)

p2.Да-да. Разделим написание программ между сто одним кодером, где каждый умеет нажимать определенную клавишу, но зато очень быстро! Вот только сколько времени уйдет на это разделение и синхронизацию выполнения...

А кто сказал, что будет легко?!
Понятно, что проще кодит один Got-object.
Но это write-onle-way.
Таки делить систему на простые подсистемы и выносить сложность на более высокий уровень абстракции, это как бы стандартный способ построения крупных систем. :-)
...
Рейтинг: 0 / 0
25 сообщений из 27, страница 1 из 2
Форумы / PostgreSQL [игнор отключен] [закрыт для гостей] / Джобы в PostgreSQL
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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