Модераторы: LSD
  

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> Выполнение функции без блокировки, без ожидания результата выполнения 
:(
    Опции темы
woland
Дата 20.10.2011, 15:15 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 26
Регистрация: 22.8.2006

Репутация: нет
Всего: нет



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

Это реально в Postgresql 9? Как это можно осуществить?
PM MAIL WWW   Вверх
LSD
Дата 20.10.2011, 16:21 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


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.
PM MAIL WWW   Вверх
woland
Дата 21.10.2011, 15:20 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 26
Регистрация: 22.8.2006

Репутация: нет
Всего: нет



То есть выход один? Создавать кучу коннектов и запускать на выполнение функции каждую в своем соединении?
PM MAIL WWW   Вверх
LSD
Дата 21.10.2011, 15:24 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


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.
PM MAIL WWW   Вверх
Zloxa
Дата 10.11.2011, 08:38 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Чо?
****


Профиль
Группа: Завсегдатай
Сообщений: 3473
Регистрация: 12.9.2008

Репутация: 3
Всего: 161



У ПГ нет своего, нативного жобшедулера?  smile 


--------------------
Достоверно известно, что 89% людей доверяют статистике взятой с потолка smile
PM   Вверх
LSD
Дата 10.11.2011, 13:47 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Leprechaun Software Developer
****


Профиль
Группа: Модератор
Сообщений: 15718
Регистрация: 24.3.2004
Где: Dublin

Репутация: 3
Всего: 538



Цитата(Zloxa @  10.11.2011,  09:38 Найти цитируемый пост)
У ПГ нет своего, нативного жобшедулера?

Есть. Просто тут как-то не приняты оракловые извращения типа скедулить джоб на выполнение через секунду. smile 


--------------------
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.
PM MAIL WWW   Вверх
Zloxa
Дата 10.11.2011, 13:59 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Чо?
****


Профиль
Группа: Завсегдатай
Сообщений: 3473
Регистрация: 12.9.2008

Репутация: 3
Всего: 161



Зачем через секунду? Можно запланировать и "на вчера". 
В чем извращенность подхода? Чем этот способ хуже разработки внешней приблудины?


--------------------
Достоверно известно, что 89% людей доверяют статистике взятой с потолка smile
PM   Вверх
LSD
Дата 10.11.2011, 19:04 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Leprechaun Software Developer
****


Профиль
Группа: Модератор
Сообщений: 15718
Регистрация: 24.3.2004
Где: Dublin

Репутация: 3
Всего: 538



Цитата(Zloxa @  10.11.2011,  14:59 Найти цитируемый пост)
В чем извращенность подхода?

Использование инструмента не по назначению.


Цитата(Zloxa @  10.11.2011,  14:59 Найти цитируемый пост)
Чем этот способ хуже разработки внешней приблудины?

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


--------------------
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.
PM MAIL WWW   Вверх
Zloxa
Дата 10.11.2011, 20:31 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Чо?
****


Профиль
Группа: Завсегдатай
Сообщений: 3473
Регистрация: 12.9.2008

Репутация: 3
Всего: 161



Цитата(LSD @  10.11.2011,  19:04 Найти цитируемый пост)
Например изменения можно закоммитить только если все вычисления завершились успешно, а иначе откатить их

Только что ж вроде говорилось, что у каждого птока своя сессия. Согласованно их все равно закомитить никак не удастя.
Цитата(LSD @  10.11.2011,  19:04 Найти цитируемый пост)
Потоки могут взаимодействовать между собой кешируя в памяти данные, передавая результаты и т.п. 

Так то ТС потоки нужны лишь чтоб уж написанную ХП дергать. Необходиомть интерпроцесс комьюникейшна им вроде не озвучивалась. Хотя и для этого, наверное в ПГ найдутся нативные средства.
Или ты ему предлагаешь все взять и переписать? В соседнем топике, помню, тебе претил такой подход к решению проблем ТС. smile 

Цитата(LSD @  10.11.2011,  19:04 Найти цитируемый пост)
Использование инструмента не по назначению.

Т.е.Когда AQ поднимает жобы для перманетного пропагейта(не знаю емкого русского термина для этого процесса) очереди, это тоже, наверное не по назначению? И процедуру ведь те жобы одну запускают, по жобе на каждое направления пропагейшна. Мне кажется - очень похоже на исходящие от ТС постановку.
Или когда десяток/другой жоб поднимают, чтоб промолотить одни данные, но каждую по своему хэш резалту - тоже не по назначению?
ТС заявил лишь что ему надо запустить одну процедуру в нескольких потоках ассинхронно. И только. Жоба, при такой постановке - наиболее простое и очевидное решение - нет.

Другое дело, если платформа не держит своих жоб. Я чет слышал какой то звон, мол жобшедулер там не интегрирован чтоли с платформой или чтото в том духе.

Это сообщение отредактировал(а) Zloxa - 10.11.2011, 23:48


--------------------
Достоверно известно, что 89% людей доверяют статистике взятой с потолка smile
PM   Вверх
LSD
Дата 11.11.2011, 12:15 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Leprechaun Software Developer
****


Профиль
Группа: Модератор
Сообщений: 15718
Регистрация: 24.3.2004
Где: Dublin

Репутация: 3
Всего: 538



Цитата(Zloxa @  10.11.2011,  21:31 Найти цитируемый пост)
Только что ж вроде говорилось, что у каждого птока своя сессия. Согласованно их все равно закомитить никак не удастя.

Two-phase commit smile 



Цитата(Zloxa @  10.11.2011,  21:31 Найти цитируемый пост)
Так то ТС потоки нужны лишь чтоб уж написанную ХП дергать. Необходиомть интерпроцесс комьюникейшна им вроде не озвучивалась. Хотя и для этого, наверное в ПГ найдутся нативные средства.

Цитата(Zloxa @  10.11.2011,  21:31 Найти цитируемый пост)
Т.е.Когда AQ поднимает жобы для перманетного пропагейта(не знаю емкого русского термина для этого процесса) очереди, это тоже, наверное не по назначению? И процедуру ведь те жобы одну запускают, по жобе на каждое направления пропагейшна. Мне кажется - очень похоже на исходящие от ТС постановку.
Или когда десяток/другой жоб поднимают, чтоб промолотить одни данные, но каждую по своему хэш резалту - тоже не по назначению?
ТС заявил лишь что ему надо запустить одну процедуру в нескольких потоках ассинхронно. И только. Жоба, при такой постановке - наиболее простое и очевидное решение - нет.

А я и не говорил, что в данном конкретном случае это наилучший подход (ты же спрашивал про постгрес в целом). Я говорил, что использование джобов для фонового выполнения задач это все "от бедности", а не потому что это такой хороший инструмент.



Цитата(Zloxa @  10.11.2011,  21:31 Найти цитируемый пост)
Или ты ему предлагаешь все взять и переписать? В соседнем топике, помню, тебе претил такой подход к решению проблем ТС.

Это твои личные фантазии, я не предлагал ничего переписывать. smile 



Цитата(Zloxa @  10.11.2011,  21:31 Найти цитируемый пост)
Другое дело, если платформа не держит своих жоб. Я чет слышал какой то звон, мол жобшедулер там не интегрирован чтоли с платформой или чтото в том духе.

Это отдельная библиотека, которую надо доустанавливать. Впрочем весь постгрес такой.


--------------------
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.
PM MAIL WWW   Вверх
Zloxa
Дата 11.11.2011, 12:44 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Чо?
****


Профиль
Группа: Завсегдатай
Сообщений: 3473
Регистрация: 12.9.2008

Репутация: 3
Всего: 161



Цитата(LSD @  11.11.2011,  12:15 Найти цитируемый пост)
Two-phase commit 

Крутотень smile 
Спасибо.
В оракле TPC тоже реализован, он используется в  распределенных транзакциях и прозрачен для программитса, механизм включается неявно. А явно, да в контексте одной датабазы, но разных сессий, вроде как его нельзя задействовать. По кр. мере мне способ не известен. 

Это реально можно испльзовать? Ты пробовал?
Смутило в нотах:
Цитата

PREPARE TRANSACTION is not intended for use in applications or interactive sessions. Its purpose is to allow an external transaction manager to perform atomic global transactions across multiple databases or other transactional resources. Unless you're writing a transaction manager, you probably shouldn't be using PREPARE TRANSACTION.

"external transaction manager" в моем воспаленном мозгу вызывает ассоциации с чем то жудко страшным, низкоуровневым, а предостережение об использовании в приложениях эту ассоциацию прочно закрепляет. И упоминание контекста мультидатабазистости тут тоже настораживает как-то.

Это сообщение отредактировал(а) Zloxa - 11.11.2011, 12:54


--------------------
Достоверно известно, что 89% людей доверяют статистике взятой с потолка smile
PM   Вверх
LSD
Дата 14.11.2011, 11:37 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Leprechaun Software Developer
****


Профиль
Группа: Модератор
Сообщений: 15718
Регистрация: 24.3.2004
Где: Dublin

Репутация: 3
Всего: 538



Цитата(Zloxa @  11.11.2011,  13:44 Найти цитируемый пост)
Это реально можно испльзовать? Ты пробовал?

Не пробовал.


Цитата(Zloxa @  11.11.2011,  13:44 Найти цитируемый пост)
"external transaction manager" в моем воспаленном мозгу вызывает ассоциации с чем то жудко страшным, низкоуровневым, а предостережение об использовании в приложениях эту ассоциацию прочно закрепляет. И упоминание контекста мультидатабазистости тут тоже настораживает как-то.

"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.
PM MAIL WWW   Вверх
  
Ответ в темуСоздание новой темы Создание опроса
0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | PostgreSQL | Следующая тема »


 




[ Время генерации скрипта: 0.0851 ]   [ Использовано запросов: 22 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.