Yuriy
и соответсвенно HSETNX
ShadoWalkeR
Поэтому идея в следующее - добавляется хэш или запись в список, а также ключ с expires (на самом деле 2, но это сейчас не важно) и при удалении ключа внешний/внутренних скрипт идентифицирует что и где искать и дропает
ShadoWalkeR
Да - я очередную наркоманию делаю в телефонии 😃
Yuriy
делай проверку по запросу и не мучай мозг
Yuriy
Так и схема проще получится и всегда валижные данные будут
Yuriy
И не будешь зависеть от механизма публикаций
ShadoWalkeR
Yuriy
котороый к слову в редисе не гаарантированный
ShadoWalkeR
А в активное проверке мне надо держать в памяти какие были ключи в предыдущую итерацию. Если в момент рестарта скрипта удалилась запись, то скрипт не почистит эти данные
Yuriy
У тебя ж ключи откуда то прилетают
Yuriy
И судя по тому что дело касается телефонии прилетают они скорее всего из запросов-ответов
ShadoWalkeR
Там тоже все stateless)
Yuriy
Ну тут не в statelesss дело
ShadoWalkeR
Осталось только чистку данных запилить и из одно микросервиса таймер в эту же схему перенести
ShadoWalkeR
Пожалуй придется хэш пилить
Yuriy
Запрос в момент диалога все равно содержит одни ите же данные
Yuriy
ты вообще какой кейс там делаешь?
ShadoWalkeR
Распределенный колл центр
ShadoWalkeR
Допилить этот механизм и горизонтальное масштабирование будет делаться просто раскатыванием сервера ансиблом и добавление в камаилио
ShadoWalkeR
Неважно куда падает звонок - он отработается в очереди с правильным позиционированием и нужными операторами
ShadoWalkeR
Ну и почти неважно что отвалится - с точки зрения клиента в наихудшем случае ему просто не ответят
ShadoWalkeR
Yuriy
Это все круто
кейс какой?
ShadoWalkeR
Ну как бы под задачу выше и пилю механизм чистки данных на случай если чтот опошло не так
ShadoWalkeR
Потому что остальное я уже все запил
bebebe
кучу гемора ушло
bebebe
хотя в redis это тоже присутствует https://redis.io/commands/ttl
ShadoWalkeR
Мне нужно знать что ключ удаляется чтобы на его основе почитстить данные
ShadoWalkeR
Зачем мне делать работу редиса в скрипте?
ShadoWalkeR
Имею в виду пилить проверку надо удалять ключ или нет
Yuriy
bebebe
https://coreos.com/etcd/docs/latest/v2/api.html#waiting-for-a-change
bebebe
очень удобно, отлавливать события связанные с изменением в базе
bebebe
хотя видимо от redis вы уже не избавитесь, поэтому надо страдать
bebebe
и костылять
ShadoWalkeR
Если бы мне просто надо было ключи дропать, я бы вешал expires и сюда со своим вопросом не пришел бы
bebebe
https://redis.io/topics/notifications
bebebe
вот так можно отлавливать события
Yuriy
ShadoWalkeR
Я то найду)
ShadoWalkeR
главное мне тут подсказали где искать)
ShadoWalkeR
За это спасибо)
bebebe
в итоге что вы решили делать?
ShadoWalkeR
Поэксперементирую с Keyspace Notifications. Если не взлетит по каким либо причинам запилю хэши, которые будет скрипт ежесекундно проверять (что хуже - лишняя нагрузка на редис)
bebebe
ShadoWalkeR
Печально. Имя ключа получаю в notifications, а значение нет. А если изменяемые данные хранить в имени ключа то сильно замороченная логика становится
ShadoWalkeR
Придется пилить хэши и активные проверки.
ShadoWalkeR
Хотя если подумать, то это неважно - если он в списке не найдет данные то просто не назначать таймер заново
vvzvlad
Я гружу скрипт с помощью loadstring. Если я вызываю из этого скрипта trace, то мне не показывается конкретная строка в скрипте, а показывается просто "[string "local mqtt = require 'mqtt'..."]:32: in function <[string "local mqtt = require 'mqtt'..."]:31>", т.е. он воспринимает весь скрипт как одну строку. Для отладки неудобно. Можно ли как-нибудь это решить, кроме как запихиваем скрипта в файл и вызовом load/loadfile?
vvzvlad
сейчас начнется
invariance
😀
Snusmumriken
Эй. Кыш с таким контентом.
vitaly
cайт на луа
vitaly
ничего не знаю
vitaly
😂
Snusmumriken
@ksenia_airbit, что расскажете, помимо бизнеса на биткоинах?
Реклама не по теме (или без ста тыщ мильёнов лично на мою кредитку), в данном сообществе - способ угодить в бан.
vitaly
самопис - 6 лет опыта
Snusmumriken
самопис - 6 лет опыта
То что луа - такой замечательный и многогранный ЯП что на нём даже можно сделать порносайт - это восхитительно (особенно если потоковый видос шлётся тоже средствами луа).
Но вот проблема в том, что
а) в чате дети;
б) те кто хотят прон - сами найдут;
в) по сайту даже не скажешь что он на луа, луашникам нечему учиться, вот если бы ты вывесил сурц - куда ни шло.
vitaly
я согласен
vitaly
это был стеб на стеб
B
Я что-то пропустил? У кого-то есть прон сайт на луа?
B
А дайте посмотреть?
Tadeusz
на луа весь код - сплошной прон
Tadeusz
исходники сталкера открой
fgntfg
Луа очень красивый язык
Tadeusz
Не ужасный, я бы так сказал )
vitaly
на большом числе соединений
vitaly
просто борис бритва
vitaly
один минус отлаживать его и ловить не прямые баги тяжело
Tadeusz
Tadeusz
брага)