
Dmitry
18.05.2018
11:26:56
А как он залочится то?

Александр
18.05.2018
11:27:34
ну он набирает задачи пока не кончится очередь, либо пока не попадётся задача для пользователя для которого он обрабатывает
типа поддерживает set множество пользователей которые в данный момент обрабаытваются

Dmitry
18.05.2018
11:28:35
Ну а если второй комп параллельно выгребает?

Google

Dmitry
18.05.2018
11:28:52
И u1-2 выполнится раньше чем u1-1

Александр
18.05.2018
11:28:54
на втором компе будут только воркеры-подзадач
то есть u1-1,u2-1,u3-1,u4-1 обработаются параллельно
потом u1-2,
потом u1-3,u2-2

Dmitry
18.05.2018
11:30:12
Не, чёт сильно плохо с горизонтальным масштабированием в этой схеме

Александр
18.05.2018
11:30:57
ну с блокировками всегда так себе с горизонтальным масштабированием

Dmitry
18.05.2018
11:31:04
Ладно, сделаю без ack
И будет норм
Вангую
А чуть что - буду делать свой кролик

Александр
18.05.2018
11:32:00
тогда если воркер умрёт, задача потеряется

Dmitry
18.05.2018
11:32:17
Не потеряется
Я имел ввиду с ack но без лока
Т.е. 100 воркеров = 100 каналов

Google

Dmitry
18.05.2018
11:33:19
Хотя, нахрена тут акк
Если все равно будет слишком поздно
Ладно, посмотрим
Потеряется - и хрен с ним
Значит пользователь не кликнул куда-то)

Alex
18.05.2018
11:57:51
Вроде для кролика был плагин sharding exchange, но я не помню, что в нем с ребалансом

Александр
18.05.2018
12:17:45
хорошая идея конечно для аггрегирующего плагина

Dmitry
18.05.2018
15:48:48
Вопрос, здесь говорили о cachex, а никто не сравнивал его случайно по скорости с con_cache?

Alex
18.05.2018
16:07:05
@Virviil а у тебя опыта с tarantool нет? у них в модуле очередей, кажется, есть то, что тебе нужно https://github.com/tarantool/queue#utube---a-queue-with-sub-queues-inside
кажется даже в точности твой кейс

Dmitry
18.05.2018
16:09:50
Выглядит похоже
Почему луа блять
Ничего не понятно

Dmitry
18.05.2018
16:23:10
Lua - можно освоить за 1-2 дня. Он один из самых простых языков программирования.
(Если уже умеешь программировать)

Alex
18.05.2018
16:25:02
у меня скорее сам тарантул бы вызвал вопросы
я не сомневаюсь, что он очень крутой, но его все же желательно понимать
а "понимать" это заметный порог вхождения для любой бд

Dmitry
18.05.2018
16:43:01
Может быть я когда нибудь делаю на тарантуле все это
Но пока что хрен с ним )

Google

Dmitry
18.05.2018
16:44:09
Я просто представляю глубину жопы, в которую меня отправит devops ))

Alex
18.05.2018
16:50:25
ну вот я так же облизываюсь на него, но всерьез рассматривать не получается

Константин
18.05.2018
16:52:00
Его очень круто юзать в качестве быстрых очередей
для разного рода CPA или тизерных сетей
Он отлично живет как сервер приложений, удобно некоторую логику скидывать именно на него

Alex
18.05.2018
16:53:23
меня тянет на нем сделать кастомные очереди на замену тому, что у нас есть, но все равно много работы нужно

Константин
18.05.2018
16:53:27
Достаточно просто поставить и заюзать на мелкой задаче)

Alex
18.05.2018
16:54:00
несмотря на все плюшки в коробке, работы много понадобится

Константин
18.05.2018
16:54:43
Если не будет от этого никакого профита.. то надо ли)
"работает? не лезь))"
Лучше новое писать или переписывать реально нужное

Alex
18.05.2018
16:58:45
в том и дело, что переписывать действительно нужно
и tnt выглядит очень привлекательной платформой
но все равно инвестиции очень солидные получаются

Константин
18.05.2018
17:00:05
Есть такой плюс, как работа с этой самой очередью в фоне
если такое надо
Смотря откуда данные берутся и т.д.

Dmitry
18.05.2018
17:00:46
А как там передаются данные?
Через бинарный протокол и сокет?

Константин
18.05.2018
17:01:12
Вроде http было

Google

Константин
18.05.2018
17:01:19
надо глянуть реализации

Dmitry
18.05.2018
17:01:28
Http?
Так на самом протоколе вся скорость потеряется
Не может быть

Alex
18.05.2018
17:01:52
http можно, но вообще там свой протокол

Dmitry
18.05.2018
17:02:12
В rmq я упаковал erlang term to binary
И получил
Без всяких лишних
Кайф короче
Мне кажется там должно быть тоже самое
Иначе не имеет смысла

Константин
18.05.2018
17:04:56
Да, там по всякому можно
он и сам свой http сервер умеет делать
а так по tcp слушает
Я гоню, http было не с ним))
это я с кликхаусом так работал
Там вот что весело.. ты можешь запустить в отдельном потоке функцию, которая будет цепляться к mysql, доставать данные, обрабатывать их и складывать к себе. Потом ты по ним можешь телать быстрые поиски и всю фигню
Если у тебя тизерка, то это прям супер
особенно в фоне обновлять веса тизеров в момент их доставания. Там такая адовая скорость, что ни одна другая база так не сделает
а вот еще недавно делали решение.. куча запросов по API, надо делать валидацию запроса на уникальность кучей способов

Google

Alex
18.05.2018
17:10:52
> запустить в отдельном потоке функцию
ну все же не потоке, а файбере

Константин
18.05.2018
17:11:05
да)

Alex
18.05.2018
17:11:08
но хуже от этого не становится, конечно

Константин
18.05.2018
17:11:20
сам факт, что оно работает))
Так вот, мы хранили все запросы за месяц в тарантуле
он сам их удалял
но поиск делали в начале по тупому, каждый раз создавая запрос.. там штук 300-500 было в него за 1 сек
и это из php
потом переписали на функцию в lua и тупо скармливаем ей сам запрос
за 0,0000 отдает ответы)))
просто сказка))
Нагрузка растет, а мы отдыхаем)
я сонный и уставший после работы)) а уже ночь, поэтому всякую хрень пишу))

Alex
18.05.2018
17:30:37

abc
19.05.2018
04:00:31