Vladislav
Andrey
в каком месте?
Vladislav
У вас пришел запрос на удаление select его достал и пока не удалил event принимать не начнет
Andrey
там два вызова, close и delete. Чему там ломаться? Где там может быть блокировка?
Vladislav
mut.Lock() delete mut.Unlock()
Vladislav
чему ломаться?
Andrey
у меня там нет мутексов
Vladislav
Ну так с мьютексами тоже нечему ломаться.
Andrey
чтоб получить мутекс, надо подождать всех остальных
Andrey
не совсем про производительность. Добавление/удаление логгера может гипотетически заблокировать рассылку.
Vladislav
Как?
Vladislav
Если вы начали рассылку никто не сможет добавить.
Andrey
А если не начал?
Andrey
не, можно и так и так. Не спорю. Просто не вижу минусов в моём подходе
Andrey
у вас просто какие-то суеверия по поводу канала каналов.
Vladislav
Тогда и в вашем варианте приедет событие на удаление и пока оно не произойдет рассылка не начнется.
Andrey
нет.
Andrey
событие на удаление придёт в канал и будет ждать обработки
Andrey
у меня проблема в другом была, я её уже решил :)
Andrey
да, согласен
Andrey
Andrey
там не рассматривается случай остановки воркера, в этом всё дело
Andrey
надо как-то сигналить (из воркера), основному процессу, чтоб закрыл канал и слайс воркеров почистил
Andrey
вот для этого и есть канал каналов
Vladislav
Vladislav
Добавил.
Andrey
Andrey
надо на стороне подписчика постараться не блокироваться на попытке вызова RemoveLogger
Andrey
спасибо, что указали на эту проблему
Andrey
в подписчике вызову go RemoveLogger и продолжу читать. рано или поздно канал закроется
Andrey
я тогда каналы сделаю без буфера, чтоб убедиться в отсутствии дедлоков
Andrey
от чего у вебсервера зависит количество коннектов к нему? Примерно то же самое
Andrey
на каждого клиента (сеодинение) - свой воркер, который отдаёт контент (эвенты в моём случае)
Andrey
программа обслуживает внешние соединения. При соединении клиенту отдаётся поток, который обслуживается воркером.
Andrey
подключится 100 клиентов, будет сто воркеров
Andrey
кем? одной горутиной? А если клиент тупит (сам или изза проблем с сетью), остальные ждать будут?
Andrey
не, ну вообще можно. В ТЗ про многопоточность ничего не сказано :)
Vladislav
Но в один поток, конечно, неприкольно.
Andrey
да, это не решает проблему, но не создаёт проблем для остальных клиентов
Andrey
клиенты общаются по grpc и у потока нет неблокирующей отсылки, поэтому приходится использовать горутины и каналы с селектом
Andrey
Vladislav
Конечно, ограничения есть. Память не бесконечная. Тут нужно вовремя все бросить и иметь таймауты.
Andrey
надо тогда таймауты реализовать какие-то
Andrey
пока я только буферизацию сделал, а она и правда нерезиновая
Andrey
таймаут на отсылку сообщения в воркере. Если она произошла, то воркер сам себя прибивает через RemoveLogger
Andrey
но пока буду делать просто с большим буфером
Andrey
всем спасибо, в особенности @GruchikVlad и @onokonem
Oleg
возможно задам очень просто вопрос, но всё же, если приходят в урле параметры ...?key1=value1&key2=value2. Как можно это распарсить в json строку, что бы потом можно было загонять это в структуру? просто если делать через url.ParseQuery, то он возвращает Values, а это map[string][]string, а мне это не очень подходит, хотелось бы получить тоже строку, а не массив строк
Илья
http://www.gorillatoolkit.org/pkg/schema ?
Aleksandr
Andrey
только для соединения
Maksim (Ellrion)
или https://godoc.org/github.com/mitchellh/mapstructure
Maksim (Ellrion)
получили мапу а уже ее на структуру переложили
Oleg
val.Encode()
не совсем то что нужно, насколько я понимаю, он как раз преобразует параметры в строку того формата, который я скинул, а мне наоборот)
Oleg
да, спасибо огромное, разобрался))
Maksim (Ellrion)
на край можно мапу в джейсон а потом джейсон уже в структуру)
Aleksandr
Anonymous
привет, прошу разблокировать @kukumbership он тут очень много сообщений написал по делу
Slava
А не по делу?
🎉
Стал паковать чямоданы только потому что, здравый смысл и вид на дефолт сити))))
🎉
Evgeny
freezlite
Дано 2 точки на карте в градусах широты и долготы каждая и радиус в км. Как определить входит ли точка в радиус другой точки?
freezlite
Некоторая погрешность допускается
Anton
тебе в канал pro.geometriya
Мерль
Alexander
freezlite
@twentydraft я прошу прощения, в чем суть?