Не ну это
чо поисходит
Не ну это
у тебя там си код?
Не ну это
сишнный компилятор стоит?
Si 🫧
Подскажите, что ему надо
🄻🄰🄺🄸
Подскажите почему это таймаутит? Разве шедулер в 1.19 не является некоторой смесью вытесняющего и кооперативного планировщика? https://go.dev/play/p/kNcAFEb-SZh
Andrey
Подскажите, что ему надо
как минимум правильно построить проек на Го
🄻🄰🄺🄸
Ну и я там Gosched ещё воткнул, и всё равно не помогает.
Andrey
Подскажите почему это таймаутит? Разве шедулер в 1.19 не является некоторой смесью вытесняющего и кооперативного планировщика? https://go.dev/play/p/kNcAFEb-SZh
на любой версии Го ты такое получишь скорее всего. у из-за бесконечного фора получается такое поведение и мэйн горутина никогда не запустится, точнее не завершится
Herman
и без гошид сработает
Артем
кстати, как решили проблему в новых версиях го, что горутина зависала на cpu bound?
Shohrukh
go env -w CGO_ENABLED=1
Попробовал не получаеться 🥺🤔
Артем
пропиши правильно папку ( создай подпапку в src -> corsMidllware - туда положи файл го
Артем
src/corsMiddleware/corsMiddleware.go
Артем
это первое
Артем
втторое
Артем
обьяви go mod init <свое название проекта>
Артем
и попробуй <свое название проекта>/src/corsMidllware в импорте
Артем
и go mod tidy не забудь сделать
Andrey
Мой совет вообще перестать писать на Го на Винде. Это создаёт слишком много дополнительных проблем
Не ну это
Ксати, на сколько производительнее гошка становится, если свапаться на линуха? Просто сам на шиндоус сижу...
Andrey
Ксати, на сколько производительнее гошка становится, если свапаться на линуха? Просто сам на шиндоус сижу...
Производительнее ничего не становится, все там и там переводится в машинный язык. Просто изначально Го создавалась под работы в линуксе, отсюда и больше удобства. Да и по статистике весь код на Го запускается на юникс машинах
Patamen
Вывод - прогай на винде спокойно
Не ну это
Походу да т.к. у меня траблов с гошкой нету на винде. Пока что.
Oleksandr
На го под Линукс
kostyaBro
С виндой там свои заморочки. Правильное логированик и запуск сервисов там со своими приколами
Vladimir
Подскажите. У меня есть 2 метода, работающих в парралель. В одной я наполняю "cache" данными, в другой - использую. То есть у меня есть: 1. 2 похожих структуры: type Reconciler1(/2) struct { client.Client Scheme *runtime.Scheme Cache *сache.Сache } 2. Cache.cache примерно такой: type Cache struct { Enable bool Map1 map[string]string Map2 map[string]string } При инициализации структур я заранее создаю переменную для cache и пихаю в обе структуры один и тот же указатель на одну и ту же структуру. Получается так, что когда я вызываю метод, который заполняет кэш - он все заполняет, но когда вызывается метод, который читает кеш - он видит изменения в Enable, но map'ы всегда пустые Что не так делаю?
Vladimir
Да
Alexander
Да
т.е. есть make?
Vladimir
да. Но тут уточню. Есть NewCache() *Cache {....} и make внутри этой функции
Alexander
Илья
звучит как потребность в очереди
Alexander
А что подразумевается под упасть?
Alexander
Если там паника какая-то, то recover, если что-то сложнее, то контексты и gracefull shutdown. Сами запросы которые пришли и требуют обработки поместить куда нибудь
Vladislav
что подразумевается под активны и отменить?
Alexander
Эм... у тебя контектс есть в мейне основной, от которого ты наследуешь другие
Null
Профессия «Data Scientist» от ProductStar — самое время качать навыки, когда конкуренция на рынке растёт в геометрической прогрессии. Традиционно в каждом из курсов: практика после каждого из занятий, лекции от топовых спикеров, трудоустройство и помощь на испытательном сроке + недавно ребята добавили помощь с трудоустройством в зарубежные компании, а также часть компаний-работодателей теперь возвращают студентам ProductStar после трудоустройства от 50 до 100% стоимости курса. Хочешь затестить - возьми пробный урок. Сейчас на курс действует скидка 21% и дополнительный промокод DATA (скажите при общении с менеджером после заявки) для наших подписчиков на скидку 20 000 руб. Промокод действует до конца месяца. Бонус — для тех кто оставит заявку на курс на этой неделе, получают курс "Менеджмент AI- и BigData-продуктов" в подарок. Регистрация: https://go.productstar.ru/nApGNR
Илья
ну как вариант одним сервисом в очередь писать, а вторым читать и выполнять
Alexander
https://www.youtube.com/watch?v=ASiF-AH7GFc
Vladimir
https://go.dev/play/p/nPyD0g-RHDT
Так работает))) Фиг воспроизведешь мой кейс)
Alexander
Так работает))) Фиг воспроизведешь мой кейс)
Надо смотреть в целом что происходит
Vladimir
ща покумеекаю) Спасибо
Илья
Зависит от того, что вы имели ввиду И когда сервер опять встал на место все что было запланировано сделать - сделалось Если сервер останавливается, то уже запущенные задачи должны выполниться при следующем запуске?
Илья
Если просто остановка, то выше скинули Graceful Shutdown
Тимофей
https://www.youtube.com/watch?v=ASiF-AH7GFc
На 13 минуте он не учитывает что дочерняя горутина будет дальше работать
Alexander
На 13 минуте он не учитывает что дочерняя горутина будет дальше работать
Хорошо, я обязательно передам автору этого доклада
Тимофей
XD
Тимофей
Ну я может не прав
Тимофей
Но вроде продолжит)
Alexander
Но вроде продолжит)
ты про ту что go func(){}?
Тимофей
Да
Alexander
Да
Да. он выполнит свои действия. Только если контекст отменится раньше, то мы результат выполнения функции не учитываем
Alexander
Если нам надо отменять еще функцию что внутри, то туда тоже можно контекст передать
Тимофей
Ну просто в чем смысл адаптера, если функция в любом случае отработает
Alexander
Ну просто в чем смысл адаптера, если функция в любом случае отработает
В том, что если у нас контекст завершится раньше, то наша функция вернет ошибку. Это же просто пример
Ilia
А как сделать чтобы работало? Подскажите пж
Alexander
А как сделать чтобы работало? Подскажите пж
А если сделать приведение типа?
Илья
А как сделать чтобы работало? Подскажите пж
наверное attrubutes["attributes"] = metadataJ
Alexander
Ilia
наверное attrubutes["attributes"] = metadataJ
Вот так сделал 😅 var attributes interface{} if metadataJ != nil{ attributes = metadataJ["attributes"] }
Илья
?
Emin Zalaev
А ты не паникуй
Ilia
А как фором пройтись по этому массиву? Ни кастануть не могу, ни фором пройтись не могу
Emin Zalaev
А какой тип у него? map[string]interface?
Emin Zalaev
Если у тебя указатель массив мап то for i, el := range *nft.Attributes{ }
Иван
а если указатель == nil
Emin Zalaev
а если указатель == nil
Можно проверку делать
Emin Zalaev
😏