![]() |
Модераторы: LSD |
![]() ![]() ![]() |
|
woland |
|
|||
![]() Новичок Профиль Группа: Участник Сообщений: 26 Регистрация: 22.8.2006 Репутация: нет Всего: нет |
Хочу в цикле запускать функцию с разными параметрами, но чтобы запущенные функции работали параллельно, то есть не цикл не зависал, ожидая окончания выполнения каждой функции. Что-то типа запуска выполнения функций в разных потоках.
Это реально в Postgresql 9? Как это можно осуществить? |
|||
|
||||
LSD |
|
|||
![]() Leprechaun Software Developer ![]() ![]() ![]() ![]() Профиль Группа: Модератор Сообщений: 15718 Регистрация: 24.3.2004 Где: Dublin Репутация: 3 Всего: 538 |
Можно установить PL/Java (или любой другой язык с поддержкой потоков) и писать на нем. Тут правда есть одна тонкость: у них у всех будет одно соединение с базой. И если надо паралелить именно работу с базой, то ничего не выйдет.
-------------------- Disclaimer: this post contains explicit depictions of personal opinion. So, if it sounds sarcastic, don't take it seriously. If it sounds dangerous, do not try this at home or at all. And if it offends you, just don't read it. |
|||
|
||||
woland |
|
|||
![]() Новичок Профиль Группа: Участник Сообщений: 26 Регистрация: 22.8.2006 Репутация: нет Всего: нет |
То есть выход один? Создавать кучу коннектов и запускать на выполнение функции каждую в своем соединении?
|
|||
|
||||
LSD |
|
|||
![]() Leprechaun Software Developer ![]() ![]() ![]() ![]() Профиль Группа: Модератор Сообщений: 15718 Регистрация: 24.3.2004 Где: Dublin Репутация: 3 Всего: 538 |
Да.
-------------------- Disclaimer: this post contains explicit depictions of personal opinion. So, if it sounds sarcastic, don't take it seriously. If it sounds dangerous, do not try this at home or at all. And if it offends you, just don't read it. |
|||
|
||||
Zloxa |
|
|||
![]() Чо? ![]() ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 3473 Регистрация: 12.9.2008 Репутация: 3 Всего: 161 |
У ПГ нет своего, нативного жобшедулера?
![]() -------------------- Достоверно известно, что 89% людей доверяют статистике взятой с потолка ![]() |
|||
|
||||
LSD |
|
|||
![]() Leprechaun Software Developer ![]() ![]() ![]() ![]() Профиль Группа: Модератор Сообщений: 15718 Регистрация: 24.3.2004 Где: Dublin Репутация: 3 Всего: 538 |
Есть. Просто тут как-то не приняты оракловые извращения типа скедулить джоб на выполнение через секунду. ![]() -------------------- Disclaimer: this post contains explicit depictions of personal opinion. So, if it sounds sarcastic, don't take it seriously. If it sounds dangerous, do not try this at home or at all. And if it offends you, just don't read it. |
|||
|
||||
Zloxa |
|
|||
![]() Чо? ![]() ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 3473 Регистрация: 12.9.2008 Репутация: 3 Всего: 161 |
Зачем через секунду? Можно запланировать и "на вчера".
В чем извращенность подхода? Чем этот способ хуже разработки внешней приблудины? -------------------- Достоверно известно, что 89% людей доверяют статистике взятой с потолка ![]() |
|||
|
||||
LSD |
|
|||
![]() Leprechaun Software Developer ![]() ![]() ![]() ![]() Профиль Группа: Модератор Сообщений: 15718 Регистрация: 24.3.2004 Где: Dublin Репутация: 3 Всего: 538 |
Использование инструмента не по назначению. Над внешней приблудой больше контроля. Например изменения можно закоммитить только если все вычисления завершились успешно, а иначе откатить их. Потоки могут взаимодействовать между собой кешируя в памяти данные, передавая результаты и т.п. -------------------- Disclaimer: this post contains explicit depictions of personal opinion. So, if it sounds sarcastic, don't take it seriously. If it sounds dangerous, do not try this at home or at all. And if it offends you, just don't read it. |
|||
|
||||
Zloxa |
|
||||
![]() Чо? ![]() ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 3473 Регистрация: 12.9.2008 Репутация: 3 Всего: 161 |
Только что ж вроде говорилось, что у каждого птока своя сессия. Согласованно их все равно закомитить никак не удастя.
Так то ТС потоки нужны лишь чтоб уж написанную ХП дергать. Необходиомть интерпроцесс комьюникейшна им вроде не озвучивалась. Хотя и для этого, наверное в ПГ найдутся нативные средства. Или ты ему предлагаешь все взять и переписать? В соседнем топике, помню, тебе претил такой подход к решению проблем ТС. ![]() Т.е.Когда AQ поднимает жобы для перманетного пропагейта(не знаю емкого русского термина для этого процесса) очереди, это тоже, наверное не по назначению? И процедуру ведь те жобы одну запускают, по жобе на каждое направления пропагейшна. Мне кажется - очень похоже на исходящие от ТС постановку. Или когда десяток/другой жоб поднимают, чтоб промолотить одни данные, но каждую по своему хэш резалту - тоже не по назначению? ТС заявил лишь что ему надо запустить одну процедуру в нескольких потоках ассинхронно. И только. Жоба, при такой постановке - наиболее простое и очевидное решение - нет. Другое дело, если платформа не держит своих жоб. Я чет слышал какой то звон, мол жобшедулер там не интегрирован чтоли с платформой или чтото в том духе. Это сообщение отредактировал(а) Zloxa - 10.11.2011, 23:48 -------------------- Достоверно известно, что 89% людей доверяют статистике взятой с потолка ![]() |
||||
|
|||||
LSD |
|
||||||
![]() Leprechaun Software Developer ![]() ![]() ![]() ![]() Профиль Группа: Модератор Сообщений: 15718 Регистрация: 24.3.2004 Где: Dublin Репутация: 3 Всего: 538 |
Two-phase commit ![]() А я и не говорил, что в данном конкретном случае это наилучший подход (ты же спрашивал про постгрес в целом). Я говорил, что использование джобов для фонового выполнения задач это все "от бедности", а не потому что это такой хороший инструмент.
Это твои личные фантазии, я не предлагал ничего переписывать. ![]()
Это отдельная библиотека, которую надо доустанавливать. Впрочем весь постгрес такой. -------------------- Disclaimer: this post contains explicit depictions of personal opinion. So, if it sounds sarcastic, don't take it seriously. If it sounds dangerous, do not try this at home or at all. And if it offends you, just don't read it. |
||||||
|
|||||||
Zloxa |
|
|||
![]() Чо? ![]() ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 3473 Регистрация: 12.9.2008 Репутация: 3 Всего: 161 |
Крутотень ![]() Спасибо. В оракле TPC тоже реализован, он используется в распределенных транзакциях и прозрачен для программитса, механизм включается неявно. А явно, да в контексте одной датабазы, но разных сессий, вроде как его нельзя задействовать. По кр. мере мне способ не известен. Это реально можно испльзовать? Ты пробовал? Смутило в нотах:
"external transaction manager" в моем воспаленном мозгу вызывает ассоциации с чем то жудко страшным, низкоуровневым, а предостережение об использовании в приложениях эту ассоциацию прочно закрепляет. И упоминание контекста мультидатабазистости тут тоже настораживает как-то. Это сообщение отредактировал(а) Zloxa - 11.11.2011, 12:54 -------------------- Достоверно известно, что 89% людей доверяют статистике взятой с потолка ![]() |
|||
|
||||
LSD |
|
|||
![]() Leprechaun Software Developer ![]() ![]() ![]() ![]() Профиль Группа: Модератор Сообщений: 15718 Регистрация: 24.3.2004 Где: Dublin Репутация: 3 Всего: 538 |
Не пробовал. "external transaction manager" - скорее всего речь идет о JTA или чем-то подобном. -------------------- Disclaimer: this post contains explicit depictions of personal opinion. So, if it sounds sarcastic, don't take it seriously. If it sounds dangerous, do not try this at home or at all. And if it offends you, just don't read it. |
|||
|
||||
![]() ![]() ![]() |
0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей) | |
0 Пользователей: | |
« Предыдущая тема | PostgreSQL | Следующая тема » |
|
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности Powered by Invision Power Board(R) 1.3 © 2003 IPS, Inc. |