Alexey
так он есть и слева и справа
Alexey
как и думал, по объему вышло больше 😂
Brown
как и думал, по объему вышло больше 😂
Но сопровождать проще будет)
Slava
про gogland. Методом тыка удалось установить, что самые медленные (Визуально идентифицируемые) инспекции это Bool condition inspection (вообще по секунд 10 у меня отрабатывает) и Unused exported function inspection. Без них -всё гораздо шустрее
Slava
ну инспекции долго отрабатывали
Slava
без тех что указал выше - всё шустро
Slava
https://c9x.me/articles/gthreads/intro.html
Anonymous
У кого работает @karma_chat_bot ?
dev_sheep
Ребята, привет. Может кто знает сервер на Go, который умеет кушать hls и транслировать его?
dev_sheep
Ибо мучаемся который день уже. Даже платные продукты не могут в hls, типа flashphoner
dev_sheep
Им постоянно обвязки нужны... Все, что нашел - это: https://github.com/shimberger/gohls. Но оно не работает должным образом.
Anton
На erlang знаю отличный https://erlyvideo.ru/
dev_sheep
о, благодарю. Сейчас гляну
ros
на erlang вроде там только вебка
Anton
Кто что может посоветовать для web mock? Или библиотеки или примеры подходов как правильно тестировать?
dev_sheep
У нас веб-камеры пачками по городу + стримы с перископа и ютуба
dev_sheep
с камерами все сделали, а вот собирать стримы с перископа тяжело...
dev_sheep
Инженеры фонера сказали, что только с помощью ffmpeg, но это отвратное решение
dev_sheep
Чем плох ffmpeg?
тем, что для нас юзание ffmpeg-а, который будет пичкать стрим на сервак - решение не гуд. Хотелось бы медиа-сервак, который будет сам кушать потоки по url-ам.
dev_sheep
Если можно так сказать, все в одном
dev_sheep
Если можно так сказать, все в одном
dev_sheep
И всё же, чем плох ffmpeg?
Anonymous
ffmpeg + icecast
dev_sheep
хотя я впринципе не сказал, что плох ffmpeg :)
dev_sheep
ffmpeg + icecast
благодарю, гляну. Возможно, связки и неплохи
Anonymous
Сам такую связку юзаю. ffmpeg кодирует, icecast раздаёт. Работает как часы. ))
dev_sheep
а сколько коннектов он держит примерно?
dev_sheep
И ты кстати какие потоки собираешь?
Roman
для кровавого энтерпрайза есть wowza
Anonymous
а сколько коннектов он держит примерно?
У меня школьный уровень. 10 входящих потоков, 2-3 клиента. Пересжимаю трансляции ТВ.
dev_sheep
А, понял. За ответ спасибо :) Ни в одном чате не накидали столько вариантов. P. S У нас на камеру планируется ~ 500 коннектов.
Anonymous
500 коннектов? Ну если ширина канала позволит, то думаю icecast легко справится. )
Roman
На erlang знаю отличный https://erlyvideo.ru/
только денег надо заплатить где-то около 1k$
Anton
только денег надо заплатить где-то около 1k$
Все дешевле чем самому писать.
Anonymous
Господин @Flerry, когда напишет свой вариант, тоже сможет продавать по $ 1k / лицензию.
dev_sheep
только денег надо заплатить где-то около 1k$
Тут не в деньгах вопрос, а в качестве и удобстве.
Anonymous
Все дешевле чем самому писать.
Самому писать - да, возможно дешевле (если он не за еду работает). А из готовых инструментов собрать - бесплатно.
dev_sheep
Самому писать - да, возможно дешевле (если он не за еду работает). А из готовых инструментов собрать - бесплатно.
Ну, я не думаю, что это очень быстро пишется :) Да и зачем, если есть решения, хоть и не идеальные. Можно на заказ, либо в соло доработать
dev_sheep
А пока сам напишешь, куча времени и денег уйдёт в никуда
dev_sheep
Ну, это пока сервис небольшой... А там будет круто что-то свое сделать :)
dev_sheep
Мне вот интересно, что у перископа: что-то свое или юзают чужое?
Anton
Самому писать - да, возможно дешевле (если он не за еду работает). А из готовых инструментов собрать - бесплатно.
Если у кого то есть что то собранное на бесплантных инструментах, и примерные расчеты на стоимость разворачивани и поддержки, хотелось бы послушать.
Илья
http://red5.org/
Илья
когда-то, много лет назад, поднимал эту штуку, не знаю как оно сейчас живёт
Anton
http://red5.org/
Помоему он давно в мертвом состоянии
dev_sheep
Судя по коммитам, очень даже жив
Илья
но, это java, так что, памяти уест вагон, но работать может по скорости неплохо :)
Roman
Все дешевле чем самому писать.
смотря что делать. если вещать в hls, то нужен только ffmpeg+nginx. ну или вообще можно взять модуль nginx_rtmp
Roman
http://red5.org/
глючный кусок говна.
Dmitriy / დიმიტრი
А есть где-нибудь на просторах телеги группа по PostgreSQL? Или может тут ответят: PostgreSQL умеет кэшировать результаты запросов типа 'SELECT SUM(money) FROM wallet WHERE True'? У меня просто очень часто этот запрос делается, а каждый раз пересчитывать сумму это ужс
Anton
сделай cache counter в таблице со связью на кошельки
Bald
агрегатные запросы часто делать плохая идея
Dmitriy / დიმიტრი
агрегатные запросы часто делать плохая идея
вот я и думаю как выкрутиться. может можно было бы таблицу с одной записью завести, но мне кажется это неправильно
Bald
обычно триггер ставят и пишут в другую таблицу
Dmitriy / დიმიტრი
Anton
что за cache counter?
вот так это в рельсах сделано, https://rubyplus.com/articles/3221-Counter-Cache-Column-in-Rails-5 но вообще просто в приложении при сохранении одной записи в записи связаной с ней обновляется счетчик
Dmitriy / დიმიტრი
Похоже тут особо ничего и не придумаешь
Sheldhur
т.е. после каждого пополнения денег подсчитывать сумму и писать туда
не надо ничего подсчитывать, есть запись итога в базе где-то, поступил платеж сделал UPDATE someTable SET totalAmount = totalAmount + $money WHERE bla bla bla
Anton
хм кажется это что-то по типу того, что я выше описывал
Да практически один в один. просто интерфейсно и походно разжовано
Dmitriy / დიმიტრი
не надо ничего подсчитывать, есть запись итога в базе где-то, поступил платеж сделал UPDATE someTable SET totalAmount = totalAmount + $money WHERE bla bla bla
А если несколько транзакций будет одновременно такой код не перезапишет общий результат последней выполнившейся транзакцией?
Dmitriy / დიმიტრი
можно лочить на запись
👍 во, об этом не подумал, спасибо
Anton
вообще тк, это го и если кошельков не 10 млн штук то можно все счетчики в память закинуть если оди сервис, или в отдельный микросервис, и в него черз очередь запихивать все транзакции у меня немного для другого, но похожего вот такая структруа создается size := 1000000 s.bucket = make(map[int32]*string, size)
Dmitriy / დიმიტრი
Ну просто с этим всем база данных может прекрасно справиться. Хотя я может не прав
Dmitriy / დიმიტრი
Плюс, если сервис упадет, то будет очень обидно
Sheldhur
справится, тем более при рестарте в память опять придется все набивать
Brown
справится, тем более при рестарте в память опять придется все набивать
Ну так при рестарте можно один раз выполнить запрос
Sheldhur
ну и сколько он будет выполняться? если данных много
Sheldhur
можно и гланды через жопу вырезать, но зачем?
Anonymous
Короч, делается так. В БД ставится триггер на добавление/удаление строк, котрый будет сам делать +1 или -1 к итогам.
Anonymous
https://www.postgresql.org/docs/current/static/sql-createtrigger.html