Wingman
это куча запросов: выборка самой железки, кучи её параметров, компонентов, связей
Заур
Скорее всего, Вы зря беспокойтесь об этом. Современные БД удивительно производительны, единственное может Вам придётся немного времени уделить правильному проектированию таблиц и индексов
Eugene
@wingz может это вам подойдет https://tarantool.io/en/product/unwired-iiot.html
Заур
Попробуйте сначала без кеша
Wingman
Попробуйте сначала без кеша
я примерно представляю и уже делаю без кеша :) но сами по себе бессмысленные массовые непрерывные выборки - не нравятся и хочется избежать
Wingman
@wingz может это вам подойдет https://tarantool.io/en/product/unwired-iiot.html
возможно, спасибо, погляжу ; если там не простое key-value, то очень может быть
Eugene
там не key-value, есть будут вопросы -то можно поспрашивать тут https://t.me/tarantoolru
Wingman
Ага, благодарю
Wingman
#wingz
(для поиска позезностей)
Pawel
да ничего, в общем-то ; это я возражал на "иметь свою презентацию в памяти того, что есть в базе - это гибельный путь"
насколько я понимаю там речь шла о другом - в кеше нужно держать то, и только то, что непосредственно востребовано в приложении, а не полностью всю базу пытаться туда запихнуть
Wingman
ну так а если у меня вся база работает на это приложение? :)
Заур
Заур
Ребзя, встречайте гостя
Denis
Товарищи, пробую tcp read write в redis, отвечать мне вообще не хочет. Есть идеи почему такое может быть? При этом telnet получает ответ
Pawel
ну так а если у меня вся база работает на это приложение? :)
обычно так и есть, Из этого не следует что всю базу надо держать в памяти, или что структуры данных приложения обязаны быть идентичны структурам данных в БД. Например, список оборудования может быть в приложении в виде списка интов
heavycharged
Подскажите, есть ли отстойность в таком решении. На вход в функцию подаю канал значений, внутри функции проверяю на существующие значения в базе (мне нужны только новые), на выход из функции отдаю канал из новых значений.. в цикле прямо так и делаю: for item := range values { // check if item is new newValues <- item } return newValues
heavycharged
да, он там обернут, забыл упомянуть :)
Заур
И newValues должен передаваться в функцию
heavycharged
И newValues должен передаваться в функцию
это для чего?) я же этот канал возвращаю, по сути своеобразный пайп получается
heavycharged
я кстати закрыть канал забыл, вот это уже косяк
Zver
это для чего?) я же этот канал возвращаю, по сути своеобразный пайп получается
Не надо. По ссылке как раз создаются внутри. https://blog.golang.org/pipelines
Zver
я кстати закрыть канал забыл, вот это уже косяк
По ссылке выше как раз почти ваш случай описан.
Заур
Асинхронно запущенная функция возвращает новый канал?
Заур
Я что-то перестал понимать
heavycharged
нет, она без go запущена
heavycharged
https://i.imgur.com/AFTk3jd.png
heavycharged
вот так
Заур
Ааа, все, дошло ))
heavycharged
спасибо за фидбек, господа!
Заур
А разве для go не надо передавать переменные в функцию все равно?
heavycharged
если go внутри for
heavycharged
а тут for внутри go :)
Zver
А разве для go не надо передавать переменные в функцию все равно?
Если как замыкание используется, то не обязательно.
Заур
Ясно, спс)
heavycharged
он видимо имеет ввиду когда for а потом спавним горутину на каждый элемент цикла, тогда нужно в функцию аргументами передавать, если тип не ссылочный
heavycharged
хотя гоню, там даже не от ссылочного типа зависит.
heavycharged
там все нужно передавать через аргументы функции в горутину
Zver
Ясно, спс)
Пример кода из pipeline pattern на эту тему. func sq(in <-chan int) <-chan int { out := make(chan int) go func() { for n := range in { out <- n * n } close(out) }() return out }
Zver
там все нужно передавать через аргументы функции в горутину
Если функция внешняя, то через параметры, если внутрянняя, то можно и так и сяк.
heavycharged
я не понимаю о чем ты говоришь, но вот так нельзя делать for _, value := range values { go func() { // делаем что-то с value }() } нужно саму горутину делать через go func(value Value) и внизу передавать значения в неё
Zver
Ну это понятно, что так нельзя. Так как значение меняется.
heavycharged
это я для @mrZuffar конкретизировал, т.к. он там спрашивал про передачу аргументов внутрь горутины
heavycharged
пробельчики)))
heavycharged
или вы про моноширинный шрифт?
heavycharged
` - однострочный код
heavycharged
три кавычки - многострочный код
ZOV
-
Anonymous
Ктонить работал с p2p? Ищу либы на эту тему. Эфир не предлагать)
Anonymous
Anonymous
П2п и делаю)
Мессенджер, передача файлов, потоковое видео, криптовалюта?
Anonymous
Пока файлы
Если только файлами ограничиться, то можно ipfs посмотреть. https://ru.m.wikipedia.org/wiki/IPFS
Anonymous
Если только файлами ограничиться, то можно ipfs посмотреть. https://ru.m.wikipedia.org/wiki/IPFS
Пока не знаю можно ли ее как лиьу использовать. Как отдельный сервис рядом таскать не охота. Идеально если апи есть на сторонний сервис
Anonymous
Вобщем поэтому свое пишу
Kirill 🎹 📷
Сам я не пользовался, но вроде вот оно: https://github.com/ipfs/go-ipfs-api
ipfs годная штука, мы как раз сейчас ее интегрируем в наш проект
Kirill 🎹 📷
Привет
Kirill 🎹 📷
Мне апи на стороннем компе надо)
ipfs поднимает http апишку
Kirill 🎹 📷
если прокинешь порты - сможешь использовать
Pawel
Go разгромил Java, Kotlin (и, соответственно, Scala) на AWS Lambda https://blog.travelex.io/blazing-fast-microservice-with-go-and-lambda-d30d95290f28 Сервисы, написанные на Go, обходятся в 10 раз дешевле аналогичных сервисов на Java-подобных языках на AWS Lambda. Пусть кое-кто убьётся апстенку уже сейчас
Kirill 🎹 📷
Илья
Точнее, докупят ещё планок ОЗУ 😃
в лямбду то?))) шуточки у вас)))
Konstantin
нам нужно еще больше сервисов ))
Mister Tomato
Go разгромил Java, Kotlin (и, соответственно, Scala) на AWS Lambda https://blog.travelex.io/blazing-fast-microservice-with-go-and-lambda-d30d95290f28 Сервисы, написанные на Go, обходятся в 10 раз дешевле аналогичных сервисов на Java-подобных языках на AWS Lambda. Пусть кое-кто убьётся апстенку уже сейчас
О хо хо! Это прекрасно! Прям в лучших традициях гошников - берут какю-то неведомую хе... джаванскую библиотеку и давай сравнивать) ActiveJdbc - это чо ваще такое? Почему бы не сравнить с чем нибудь чем все пользуются, например с c3p0? Ааа наверное потому что тогда го сольётся)
Pawel
Точнее, докупят ещё планок ОЗУ 😃
это они ещё стоимость разработки не считали, тогда бы точно убились
Axm
http://www.techempower.com/benchmarks/ Ява в топе по тестам
Mister Tomato
модный робот чо)