Мерль
Slach
Вопрос в целях и границах
в идеале, анализатор произвольного dataset в Clickhouse на аномалии
в худшем случае, анализатор конкретных таблиц с конкретной структурой, по заранее размеченным по типам (измерение, факт) полям
Slach
даже во втором варианте, у меня все равно получается что надо генерировать запрос
по некоторому подмножеству полей
вот я и спрашиваю, ок. если я объявлю большую структуру где пропишу все поля
а в запросе укажу только некоторые
то при фетчинге у меня в структуре будут заполнены только те поля, которые я указал в запросе?
теперь вопрос, нельзя ли вместо жесткой структуры сделать какой нибудь map[string]interface{}
и фукнцию ConvertFromInterfaceToSelectedType ?
Daniel
Короткий ответ - не знаю :)
Daniel
Раз мы пишем аналайлер - да, нам все это нужно
Anonymous
ребята, Java имеет будущее?
Anonymous
или умирает?
Alexander
Alexander
Дальше можно уже любые мапы собирать
Alexander
@onokonem по поводу вчерашнего разговора про http запроссы к ртб: очевидно, у нас там проблема с тем, что количество одновременных http-коннектов не ограничено. Как я писал выше, сейчас этот модуль сделан на Scala. Там стоит 1000 одновременных коннектов максимум. Будем копать в этом направлении. В ином случае - у нас количество гоурутин уходит в неконтролируемое состояние, и переключения между ними становятся слишком хаотичными, вследствие чего система деградирует
Daniel
у меня система деградировала на 10M+ горутин. есть подозрение, что это число завязано на размер кеша процессора
Daniel
так что, да, боюсь, вам прописан пул горутин
Daniel
который, надо сказать, получается очень просто - канал и пачка читателей
Alexander
Alexander
Как сделать пул руками - примерно понятно :) Если я правильно понял, поможет http.Transport
Alexander
Правда на скорую руку запиленный http.Transport ситуацию не разрешил
Alexander
Надо копать более глубоко
Мерль
А блин
Мерль
Надо ещё будет следить за живыми коннектами и делать декремент счётчику на close
Alexander
Там есть максимальное количество idle коннектов, но как я понял, это не оно)
Alexander
который, надо сказать, получается очень просто - канал и пачка читателей
Здесь есть скрытая сложность. Дело в том, что запросы на ртб мы посылаем на каждую ртб по каждому пользователю. Если сделать 1 канал для ответов на http запросы, то ответы по разным пользователям перемешаются. Следовательно, надо в ответ зашивать некую инфу о том, по какому пользователю этот ответ. А потом из основного канала перенаправлять в нужный канал. Нужный канал видимо надо вынимать из мапы каналов пользователей. И еще нужно следить за этой мапой, конкуретностью)
Мерль
Мерль
Потому что это делается по-разному
Alexander
Ограничение на количество одновременно выполняемых http запросов
Мерль
@kirilldanshin, ты не мог бы высказать мнение по поводу tagged enum, который я описал выше?
Alexander
Обработчик в данном случае - это и есть функция, которая делает запрос
Мерль
Alexander
Верно
Мерль
“Building a Worker Pool in Golang” @jmdalmeida92 https://geeks.uniplaces.com/building-a-worker-pool-in-golang-1e6c0fdfd78c
Мерль
Вот та свежая статья
Alexander
Спасибо, почитаю. Но надеюсь все-таки, что может удастся найти какой-нибудь хороший http клиент, у которого есть встроенный пул
Alexander 🐕
Какие средства метапрограммирования в Golang Вы знаете?
Mike
а вообще в го же нет макросов и генериков, какое метапрограммирование?
Alexander 🐕
Ну - мне интересно мнение дамы
Alexander 🐕
Ответ я знаю, да
Mike
не, просто ты вопрос не тот задал
Mike
потому что на него тот, кто знает, и кто не знает, ответит одинаково)
Mike
"я не знаю никаких"
Oleg
А кодогенерация? :)
Alexander 🐕
Aslan
Pawel
Такая беда( Был нормальный сайт, грубо говоря - betfair.com. Я с него на гошечке брал некоторые числа по хттп выдирая из хтмл. Потом пришли геи и сделали вместо хтмл факин веб приложение на факин ангуляре. Вопрос - как теперь жыть? в смысле можно ли в гошечке как-то отрендрить ангуляр?
Valentin
Phantomjs
Roman
Chrome headless
Valentin
Я не спец по нему, пробовал пару лет назад
Roman
Даже примеры где-то под лямбду находил
Valentin
Вообще фантом вроде как хром с апи на жс
Pawel
ок, спс. буду глядеть
Mike
Фантом или селениум, ага
Anonymous
Ребят, на чем сложнее веб-приложения писать, Go/Python(Django)
Roman
Go
Roman
https://chromeless.netlify.com/#src=const%20chromeless%20=%20new%20Chromeless(%7B%20remote:%20true%20%7D)%0A%0Aconst%20screenshot%20=%20await%20chromeless%0A%20%20.goto('https://www.lenta.ru')%0A%20%20.scrollTo(0,%202000)%0A%20%20.screenshot()%0A%0Aconsole.log(screenshot)%0A%0Aawait%20chromeless.end()
Roman
Pawel ^
Pawel
@rkononov 👍
Pawel
Pavel
Danil Á.
К тому же пока что нет фреймворка уровня django для golang
Мерль
Мерль
Мерль
Хотя с ростом объёма проекта сложности сравниваются, по крайней мере для меня
Pavel
Мерль
реально?
C headless chrrome он не особо стал нужен
Pavel
а в селениуме не появилось возможности брать управление уже в открытом браузере?
Alexander
Вместо него hedless google chrome
Anton 🇺🇦
for _, g := range games.Result.Games {
min := int(g.Scoreboard.Duration / 60)
return fmt.Sprintf("%v (%d) vs %v %s. %d-%d kills %d minutes in.\n", g.TeamRadiant.TeamName, g.RadiantSeriesWin, g.TeamDire.TeamName, g.DireSeriesWin, g.Scoreboard.Radiant.Score, g.Scoreboard.Dire.Score, min)
}
Anton 🇺🇦
не выводит ничего
Anton 🇺🇦
а если поменять на fmt.Printf - выдает ошибку
Anton 🇺🇦
.\main.go:61: too many arguments to return
have (int, error)
want (string)
Stanislav
оно прямо говорит, чего хочет, и что ты пихаешь туда