powered by simpleCommunicator - 2.0.61     © 2026 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / PostgreSQL [игнор отключен] [закрыт для гостей] / Отложенное/фоновое выполнение запроса
21 сообщений из 21, страница 1 из 1
Отложенное/фоновое выполнение запроса
    #39012280
westvovik
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Народ подскажите какое либо решение:

При вставке в таблицу у меня триггер обрабатывает обновление материальной вьюшки, и в последнее время возрастает задержка при обновлении, как бы так сделать чтоб эта вьюшка обновилась в фоновом режиме, чтоб пользователь не ждал каждый раз завершения обновления вьюшки?

Увидел решение с gearman, вообщем то он меня устраивал бы еслиб я мог прям из базы вставить в таблицу очереди gearman и он бы их выполнил, однако он не хочет выполнять вставленные вручную в очередь задачи
...
Рейтинг: 0 / 0
Отложенное/фоновое выполнение запроса
    #39012718
Electric200
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
westvovik,
SET synchronous_commit = off;
А вообще не понятно в "фоном режиме" и что значит "он не хочет выполнять вставленные вручную"..
...
Рейтинг: 0 / 0
Отложенное/фоновое выполнение запроса
    #39013521
Gold_
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
westvovik,

Использовать более другую очередь ("более постгресовую"), например pqq (или другие) будете в триггере писать в очередь.
...
Рейтинг: 0 / 0
Отложенное/фоновое выполнение запроса
    #39014373
westvovik
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Gold_westvovik,

Использовать более другую очередь ("более постгресовую"), например pqq (или другие) будете в триггере писать в очередь.

А вот в сторону PGQ я смотрел, но что то не могу найти внятной инструкции на установку, вообще откуда ее взять подскажите, сервер у меня на FreeBsd?

Надо устанавливать Skytools как я понимаю для этого? Или я не прав?
...
Рейтинг: 0 / 0
Отложенное/фоновое выполнение запроса
    #39014448
westvovik
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Ну с установкой справился и удачно запустил, вопрос как этим пользоваться?

Есть тут кто знающий PGQ подскажите как мне к примеру поставить в очередь запуск ф-ции к примеру text?
...
Рейтинг: 0 / 0
Отложенное/фоновое выполнение запроса
    #39014533
Фотография Misha Tyurin
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
westvovik,

покажите вашу схему, что у вас там за "материальная вьюшка", и как вы её обновляете и как планируете.

решение на очереди pgq тут может быть, но оч вероятно, что вы что-то делает не так
...
Рейтинг: 0 / 0
Отложенное/фоновое выполнение запроса
    #39014546
westvovik
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Misha Tyurin,

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

Из за этого пересчитывать надо несколько месяцев была сделана такая вьюшка.

Вообщем то даже не суть, что мне эту вьюшку надо обновить, у меня там есть задачи и другие, которые требуют вычислений, но можно мгновенно их не делать, вот тут и очередь нужна, а вьюшку эту для теста хотел так настроить и посмотреть вообще как очереди надежно ли работают
...
Рейтинг: 0 / 0
Отложенное/фоновое выполнение запроса
    #39014600
Фотография Misha Tyurin
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
westvovik,

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

https://github.com/markokr/skytools
https://github.com/markokr/skytools/blob/master/python/pgq/consumer.py

поищите, в инете много инфы.

я только на этом форуме несколько раз подборку ссылок давал и по pgq и по консумерам и по процессингу обобщенному
...
Рейтинг: 0 / 0
Отложенное/фоновое выполнение запроса
    #39014630
Фотография Misha Tyurin
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
...
Рейтинг: 0 / 0
Отложенное/фоновое выполнение запроса
    #39014644
Фотография Misha Tyurin
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Misha Tyurin,

! но,
это может быть и дорогой в нетуда... -- использовать, только если понимаете как оно работает (хорошо хоть разобраться не сложно).
...
Рейтинг: 0 / 0
Отложенное/фоновое выполнение запроса
    #39014646
Фотография Misha Tyurin
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Misha Tyurin,

но с другой стороны, для целого класса задач, альтернативы pgq просто нету.
...
Рейтинг: 0 / 0
Отложенное/фоновое выполнение запроса
    #39014816
qwwq
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
westvovikMisha Tyurin,

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

Из за этого пересчитывать надо несколько месяцев была сделана такая вьюшка.

это всё считается инкрементально, т.е. агрегировать заново "несколько месяцев" не надо, надо наварить дельту к итогам


вот если задним числом тариф меняется, или ещё более сложный профиль вклада в агрегаты и надо пересчитать всё это, а хорошая аддитивщина [для инкремента] не вычисляется -- вот тогда триггерно набрасываем задания на пересчет, а потом безо всякой очереди джобами подбираем остатки по набросанным задачам.

связываться для этого с пгку -- заведомо лишнее (а к переносу скажем пгдампом ещё и негодное -- по самой привязке "очередей" к счетчику транзакций конкретной дб. там вообще тараканы имели друг--друга в голове проектировщика пегекю, думается)
...
Рейтинг: 0 / 0
Отложенное/фоновое выполнение запроса
    #39014828
Фотография Misha Tyurin
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
с дампом известный воркараунд

http://skytools.projects.pgfoundry.org/skytools-3.0/doc/faq.html#_dump_restore
...
Рейтинг: 0 / 0
Отложенное/фоновое выполнение запроса
    #39014852
westvovik
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Misha Tyurinwestvovik,

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

https://github.com/markokr/skytools
https://github.com/markokr/skytools/blob/master/python/pgq/consumer.py

поищите, в инете много инфы.

я только на этом форуме несколько раз подборку ссылок давал и по pgq и по консумерам и по процессингу обобщенному

Не совсем понял можно ли консумер на SQL написать? вроде написано что поддерживается написание консумеров на разных языках?

Т.е. правильно ли я понимаю, я должен написать какойто обработчик событий - это и есть консумер, а в нем я уже буду писать код как такое событие обрабатывать так?

Событие сгенерировать вот этой ф-цие pgq.insert_event, правильно?
...
Рейтинг: 0 / 0
Отложенное/фоновое выполнение запроса
    #39014881
Фотография Misha Tyurin
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
westvovik,

нуууу... типа того. я вам накидал много примеров
...
Рейтинг: 0 / 0
Отложенное/фоновое выполнение запроса
    #39014897
westvovik
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Misha Tyurin,

Не пойму что не так с конфигом, не хочет запускаться

[pgqd]

# where to log
logfile = /var/log/pgqd.log

# pidfile
pidfile = /var/run/pgqd/pgqd.pid

## optional parameters ##

# libpq connect string without dbname=
#base_connstr =

# startup db to query other databases
#initial_database = template1

# limit ticker to specific databases
#database_list =

# log into syslog
#syslog = 1
#syslog_ident = pgqd

## optional timeouts ##

# how often to check for new databases
#check_period = 60

# how often to flush retry queue
#retry_period = 30

# how often to do maintentance
#maint_period = 120

# how often to run ticker
#ticker_period = 1


[mailer_daemon]
job_name = mailer_daemon
src_db = hvo_main
dst_db = hvo_main
pgq_queue_name = mailer
dst_query = SELECT * FROM function_to_be_run(%%(username)s, %%(email)s);
logfile = /var/log/%(job_name)s.log
pidfile = /var/run/pgqd/pid/%(job_name)s.pid

Ошибка
2015-07-23 19:22:30.152 18212 ERROR fill_defaults fail
2015-07-23 19:22:30.152 18212 FATAL @pgqd.c:77 in function load_config(): failed to read config
...
Рейтинг: 0 / 0
Отложенное/фоновое выполнение запроса
    #39014955
p2.
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
westvovik,

поэкскрементируй с листен/нотифы. правда с гарантированностью доставки облам, но для данной задачи при старте подписчика можно принудительно выполнять обновление.
...
Рейтинг: 0 / 0
Отложенное/фоновое выполнение запроса
    #39015220
westvovik
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
p2., Я думаю что дожму уж PGQ, тут осталось настроить то
...
Рейтинг: 0 / 0
Отложенное/фоновое выполнение запроса
    #39015389
westvovik
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Разобрался написал простой консумер на Python

файл mailer.py

import sys, os, pgq, skytools

class Mailer(pgq.Consumer):
def sendWelcomeMail(self, params):
"""try to send mail, return true on success, false on failure"""
return True

def process_batch(self, src_db, batch_id, ev_list):
for ev in ev_list:
d = skytools.db_urldecode(ev.data)
self.log.debug ("event : %s | type : %s | inserted by : %s" % (d, ev.type, ev.extra1))
if not self.sendWelcomeMail(d):
sys.exit(1)
ev.tag_done()

if __name__ == '__main__':
script = Mailer("mailer_daemon","src_db",sys.argv[1:])
script.start()


файл mailer.conf

[mailer_daemon]
job_name = mailer_daemon

src_db = dbname=hvo_main

pgq_queue_name = mailer
pgq_consumer_id = %(job_name)s

logfile = /var/log/pgqd/%(job_name)s.log
pidfile = /var/run/pgqd/%(job_name)s.pid


Запуск оброботки python mailer.py mailer.conf -v
...
Рейтинг: 0 / 0
Отложенное/фоновое выполнение запроса
    #39015395
westvovik
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Теперь след вопрос, подскажите как из этого консумера к примеру запустить в Postgresql ф-цию test?

Какой синтаксис подскажите плиз, я python вообще не знаю
...
Рейтинг: 0 / 0
Отложенное/фоновое выполнение запроса
    #39015752
qwwq
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Misha Tyurinс дампом известный воркараунд

http://skytools.projects.pgfoundry.org/skytools-3.0/doc/faq.html#_dump_restore снкс
хороший костылик, годный


и даже со снапшотами на стыке вроде всё хорошо . нет ?


вот только несколько таких базенок в один инстанс задним числом налить -- крепко думать надо. (стартовать от максимума, кажется. и не перепутать).
...
Рейтинг: 0 / 0
21 сообщений из 21, страница 1 из 1
Форумы / PostgreSQL [игнор отключен] [закрыт для гостей] / Отложенное/фоновое выполнение запроса
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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