QRanked.com
Народ подскажите, если я из NATS прочитал json, но не смог его записать в БД из-за ошибки, как мне сообщить NATS чтобы он его не выкидывал из очереди? если я его обратно кладу в очередь при ошибке записи БД, то подписка опять срабатывает и так в цикле. В минуту 100 тысяч раз. Как быть?
Andrey
Andrey
надо отправлять с требованием подтверждения
QRanked.com
Andrey
Sweety
Есть вариант взять кафку 😬😬
Andrey
или к кафке прилагается кошкодевочка которая все сама настраивает? )
Andrey
Sweety
Я натс с КХ первый раз щупал помню
QRanked.com
Sweety
А дока по натсу есть на русском?
Rostislav
Rostislav
время задается при создании подписки вроде
Rostislav
на клиенте
QRanked.com
а для реконекта БД ставить таймауты переподключения или подряд долбить пока не подключится?
Sweety
Sweety
где-нибудь в config.yaml
Rostislav
Sweety
QRanked.com
Rostislav
а, я думал вопрос с натсом связан
QRanked.com
вопрос с натсом, хочу обрабоать ситуацию если прочитаное не удалось записать в базу
QRanked.com
ребята выше ответили
Spiderman
ребята как сделать фильтрацию в монго?
Spiderman
ой
Spiderman
я здесь просто переменные попутал
Spiderman
все работает!
Alexandr
Добрый день, как всетаки хранить указатели в массиве от объектов разных типов
type E struct {
Pointer map[int][]*any
}
func Fc[T Any](e *E, id int, t T) []*T {
arr := make([]*T, 100)
e.Pointer[id] = arr
return arr
}
Есть идеи?
Null
👣 Zmap-ProxyScanner - быстрый способ поиска прокси. Поможет найти 2000-5000 рабочих http, socks4, socks5 прокси за одно сканирование.
⚙️ GitHub
#github #soft #Go
@Golang_google
Юра (Юрий Александрович)
Alexandr
Пока что не до конца понятна задача.
В функцию передается ид и структура объекта, под эту структуру создается массив указателей под обьекты вот эти указатели хочу записать в мапу что бы было доступно по E.Pointer[id][id2]. Можно было бы через unsafe но на сколько я знаю он не привяжет сам указатель и GC соберет потом этот массив
Юра (Юрий Александрович)
Vladislav
притом сразу с дженериками, нафига они если все равно ссылки на объекты
Alexandr
Alexandr
идея в том что мы передаем структуру(может быть любой), под данную структуру создается массив указателей, при необходимости создается обьект через рефлект а указатель на него кладется в данный массив
Victor
массив указателей на ее объекты-компоненты?
Несин Данила
Добрый день!
Пишу внутренний портал инструментов, возник архитектурный вопрос:
У меня есть сервисный пакет отправки почты, который так же использует иные пакеты https://go.dev/play/p/i-5L_bVpy6A
Как было бы более правильно регистрировать ошибки в работе данного модуля (и в целом отдельных функциональных частей):
1. Передавать ошибку "вверх"/вызывающему, он регистрирует её в журнале и отрабатывает свой сценарий ошибки
2. Сразу внести запись в журнал ошибки, передать её вызывающему, а тот отрабатывает свой сценарий ошибки
Логгер - zap, используется глобальная переменная zap.L()
Более кратко вопрос звучал бы так - где лучше проводить регистрацию ошибки в журнале - в самом используемом пакете или на уровне вызывающей функции?
Victor
скорее всего, логгер у тебя существует в контексте "приложение", думаю, там и уместно логировать. вызываемый пакет должен просто вернуть ошибку, ее обработка не его забота (если это не panic-ситуация)
Alexandr
Alexandr
самих сущностей может быть очень много и под каждую сущность делать экземпляр объекта дорого, по этому и надо хранить только указатель, а когда компонент добавляется в сущность уже инцелезируется сам объект и добавляется в этот массив указатель на него
Maksim
var e = [100][]any{}
Andrey
Бузург
ребята а как было вывести строку наоборот
Бузург
ну в место 123
Бузург
321
Vladislav
1. ну выведи задом наперед
2. засунь в массив байт и реверсни, потом выведи
Aleks
Vladislav
В стек ее.
с рекурсией и выводить по одному? тоже норм🤣
Vladislav
в го строки immutable
Andrei
ну это по определнию, не думаю,что он пытается это обойти)
Maksim
Vladislav
Alexandr
var e = [100][]any{}
var e = [100][]any{}
var arr []*T
e[1] = arr // Cannot use 'arr' (type []*T) as the type []any
Vladislav
данеужели
Aleks
А может туда просто interface{}? :)
Victor
(как повествует Википедия)
Alexandr
Alexandr
Evgeny
Можете закидать тряпками, но чем такое решение не устраивает
Evgeny
Alexandr
Без дженериков, и надо присвоить массив ссылок к переменной
Юра (Юрий Александрович)
Я до сих пор не понимаю, какая решается задача... Не то чтобы я без этой информации жить не мог, но странно как-то. Нельзя все время "смотреть под ноги", надо иногда смотреть вперед и вверх.
1) что мы хотим получить?
2) Зачем нам это надо?
Alexandr
Evgeny
А дженерики чего плохого сделали)))
Anton
massivSsilok
Anton
а че не slaisSsilok?)
Илья
Лучше не пренебрегать магическим словом any, а пытаться строго типизировать такие участки кода
Evgeny
Alexandr
Илья