powered by simpleCommunicator - 2.0.61     © 2026 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / Проектирование БД [игнор отключен] [закрыт для гостей] / Реализация очереди событий - как правильно
3 сообщений из 3, страница 1 из 1
Реализация очереди событий - как правильно
    #38257781
Фотография vromanov
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Добрый день!
В нашем сервере надо обрабатывать события разных типов. несколько воркеров добавляет события, несколько их выбирают и обрабатывают. Интересно узнать, правильно ли мы все делаем? Ели есть более правильные пути.

Для этого сделана приблизително такая табличка
Код: sql
1.
2.
3.
4.
5.
6.
7.
8.
CREATE TABLE appuser.event
(
  obj_id bigint NOT NULL, -- Internal ID: Internal session ID
  event_type smallint NOT NULL DEFAULT 0, -- Event Type: Type of event
  peers integer NOT NULL, 
  event_time timestamp without time zone NOT NULL, -- Event Time: Time when Policy Engine should be triggered
  rowid bigserial NOT NULL,
)


Используемые базы данных TimesTen & Postgresql.
Для получения события используется запросы типа
Код: sql
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
---TimesTen
DELETE FIRST 1 FROM event evnt 
WHERE event_time < TT_SYSDATE 
  AND peers=:peers 
RETURNING 
  obj_id, event_type 
INTO 
  :obj_id, :event_type

---Postgresql
DELETE FROM event 
WHERE rowid IN (SELECT rowid FROM event WHERE 
  event_time < now()
  AND peers=$1
LIMIT 1) 
RETURNING 
   obj_id, event_type



Jabber: vromanov@gmail.com
...
Рейтинг: 0 / 0
Реализация очереди событий - как правильно
    #38257812
tanglir
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
vromanov,

лимит/фёст без ордербая... вы настолько хорошо знаете внутренности обеих СУБД, чтобы быть уверенным, что удаляться будет всегда именно то, что нужно?
...
Рейтинг: 0 / 0
Реализация очереди событий - как правильно
    #38257951
Фотография vromanov
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
tanglirvromanov,

лимит/фёст без ордербая... вы настолько хорошо знаете внутренности обеих СУБД, чтобы быть уверенным, что удаляться будет всегда именно то, что нужно?
При условии соблюдения услвий в where можно удалять любую строчку. Этот запрос дерагется приблизительно
Количество воркеров - 4-8
Количестов разных peers - 1-12
Частота опроса 10 раз в секунд.
Итого по максимуму 8x12x10 т.е. около 1000 раз в секунду. В среднем 400 раз.
...
Рейтинг: 0 / 0
3 сообщений из 3, страница 1 из 1
Форумы / Проектирование БД [игнор отключен] [закрыт для гостей] / Реализация очереди событий - как правильно
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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