Size: a a a

pro.rb (Ruby/Rails / RU)

2020 October 26

RU

Roman Usherenko in pro.rb (Ruby/Rails / RU)
ShadoWalkeR
Да - я из телефонии и у нас всегда тут странные запросы 😃
та не норм запросы, замени телнет на просто входящий поток логов - ничо не изменится
источник

S

ShadoWalkeR in pro.rb (Ruby/Rails / RU)
Ну в одном месте так и пришлось сделать - сообщение о неправильной авторизации пишется только в лог и единственный вариант выудить кто ломится - раз в n минут парсить сегодняшние логи и отправлять сообщения в редис😂 К концу дня там приходится выхлоп grep по гиговому логу парсить
источник

f🤔

focusshifter 🤔 in pro.rb (Ruby/Rails / RU)
ShadoWalkeR
Изначальная задача: Есть некая околореалтаймовая система. В одном месте на телнет интерфейсе генерируются сообщения сплошным потоком. Раньше скрипт слушал его напрямую, периодически отваливался и терял сообщения. Необходимо было повысить надежность и избавиться от потерь сообщений. Я решил в качестве шины задействовать редис - List. Собственно скрипт который стал слушать непосредственно на серверах делает только 1 действие - rpush. Скрипт на приемной стороне - lpop. Поскольку серверов с логикой у нас 2 - основной и резервный, то я решил переделать на горячий резерв.
Все логично - 2 редиса, создаем класс обертку, храним коннекты в array внутри, проксируем вызов rpush - если чтото пошло не так на этапе выполнения, отлавливаем эксепшен, переключаемся на следующий коннект и так в цикле пока все не переберем. Не получилось - сбрасываем сообщение в лог.

А теперь то что можно сделать изящней - я явно прописал rpush и логику переключения. Если нужен будет к примеру set, придется его точно также реализовывать. И я думаю что можно как то это обойти - неважно какую функцию вызвали в классе-прокси, прокинуть её в коннектор и если сгенерировалось NoMethodError - вернуть ошибку обратно. А если пошло чтото не так в процессе выполнения - отработать логику поиска живого коннекта к редису
Резервирование sentinel закрыть может
источник

S

ShadoWalkeR in pro.rb (Ruby/Rails / RU)
focusshifter 🤔
Резервирование sentinel закрыть может
Его нет)
источник

RU

Roman Usherenko in pro.rb (Ruby/Rails / RU)
ShadoWalkeR
Его нет)
ну так поставь)
источник

RU

Roman Usherenko in pro.rb (Ruby/Rails / RU)
ты просто я вижу пеликий любитель велосипедостроения)
источник

S

ShadoWalkeR in pro.rb (Ruby/Rails / RU)
Нет - там на этот редис много что завязано в системе и просто так шевелить нельзя
источник

MC

Mikhail Churakov in pro.rb (Ruby/Rails / RU)
В чем вопрос то? В проработке интерфейсов ?
источник

MC

Mikhail Churakov in pro.rb (Ruby/Rails / RU)
Главный вопрос - зачем лишние слои абстракции то?
источник

S

ShadoWalkeR in pro.rb (Ruby/Rails / RU)
Как проксировать вызовы функций без явного указания их в прослойке-абстракции
источник

f🤔

focusshifter 🤔 in pro.rb (Ruby/Rails / RU)
ShadoWalkeR
Нет - там на этот редис много что завязано в системе и просто так шевелить нельзя
И оно без автофейловера живет?
источник

S

ShadoWalkeR in pro.rb (Ruby/Rails / RU)
focusshifter 🤔
И оно без автофейловера живет?
Ну ты понимаешь почему мне это приходится решать на стороне моего кода😈
источник

S

ShadoWalkeR in pro.rb (Ruby/Rails / RU)
Там на самом деле не критичные данные, просто их шевеления вызывают проблемы
источник

MC

Mikhail Churakov in pro.rb (Ruby/Rails / RU)
ShadoWalkeR
Как проксировать вызовы функций без явного указания их в прослойке-абстракции
Много как можно, главный вопрос зачем именно без указания?
источник

IN

Ivan Naumov in pro.rb (Ruby/Rails / RU)
А через кластер раббитов нельзя было сделать?)
источник

f🤔

focusshifter 🤔 in pro.rb (Ruby/Rails / RU)
ShadoWalkeR
Как проксировать вызовы функций без явного указания их в прослойке-абстракции
эм. method_missing не закрывает это?
источник

S

ShadoWalkeR in pro.rb (Ruby/Rails / RU)
Очень много легаси, которое надо разгребать. Возможно однажды такие костыли не понадобятся
источник

IN

Ivan Naumov in pro.rb (Ruby/Rails / RU)
Ну он типа для этого же и нужен или я не понял задачу
источник

MC

Mikhail Churakov in pro.rb (Ruby/Rails / RU)
Чем плохо явное объявления? Чтобы потом другой человек помучился ? :)
источник

f🤔

focusshifter 🤔 in pro.rb (Ruby/Rails / RU)
Ivan Naumov
Ну он типа для этого же и нужен или я не понял задачу
"не хочу/не могу ничего трогать, пишу код"
источник