Size: a a a

2020 October 11

DP

Daniel Podolsky in Go-go!
А в чем проблема
источник

SS

Shaoron Steiner in Go-go!
Локоть Анатолий
Коллеги, реализовывал или сталкивался ли кто-то с функционалом "найти id процесса, который слушает на сетевом порту N"
netstat -p ?
источник

ЛА

Локоть Анатолий... in Go-go!
Daniel Podolsky
А в чем проблема
Я тут выяснил и на практике столкнулся, что докер в gke может оставлять недозавершенные или stale процессы, которые рекомендуется банально прибивать вручную.

Прочитать об этому можно по ссылке ниже найдя текст "address already in use"
https://cloud.google.com/kubernetes-engine/docs/troubleshooting

Вот я собственно и подумал реализовать при старте сервера такой костыль - в случае address already in use найти процесс на порту и через ретрай логику в несколько попыток убить его.

Можно воспользоваться консольными утилитами, но они зависят от текущего базового образа, к примеру разные даже между debian и apline.
источник

ЛА

Локоть Анатолий... in Go-go!
Shaoron Steiner
netstat -p ?
Держу в голове на крайний случай, но завязано на текущую ос. Плюс я хотел реализовать ретрай логику в коде го и потому желательно было бы остаться в коде го, не порождая дополнительные процессы
источник

ЛА

Локоть Анатолий... in Go-go!
Посылать сигналы процессу из го удобно, остаётся находить тот самый pid
источник

ВС

Владимир Столяров... in Go-go!
в самом netstat это делают просто перебором процессов через /proc, если я правильно понял
кроссплатформенного способа нет
источник

AC

Amber Claes in Go-go!
Перевёл проект на go модуль, теперь появилась проблема с импортами
https://pastebin.com/6wLTdUa7

Подскажите как правильно делать импорты в модулях
источник

ЛА

Локоть Анатолий... in Go-go!
Владимир Столяров
в самом netstat это делают просто перебором процессов через /proc, если я правильно понял
кроссплатформенного способа нет
Не то, чтобы я хотел поддерживать код винды, просто даже сам нетстат слегка разный между разными линухами, и маком, например. плюс дополнительные консольные тулзы типа awk также отличаются, но какой-то общий знаменатель можно найти вроде бы. Спасибо)
источник

К🇦

Коала 🇦🇺 in Go-go!
Локоть Анатолий
Не то, чтобы я хотел поддерживать код винды, просто даже сам нетстат слегка разный между разными линухами, и маком, например. плюс дополнительные консольные тулзы типа awk также отличаются, но какой-то общий знаменатель можно найти вроде бы. Спасибо)
Написать кроссплатформенный модуль с условиями
источник

ЛА

Локоть Анатолий... in Go-go!
Коала 🇦🇺
Написать кроссплатформенный модуль с условиями
Тоже вариант, и возвращать ошибку если что-то пошло не так
источник

ВС

Владимир Столяров... in Go-go!
Локоть Анатолий
Не то, чтобы я хотел поддерживать код винды, просто даже сам нетстат слегка разный между разными линухами, и маком, например. плюс дополнительные консольные тулзы типа awk также отличаются, но какой-то общий знаменатель можно найти вроде бы. Спасибо)
ну мак - не linux, а bsd
источник

АД

Алексей Долгов... in Go-go!
Коллеги подскажите пожалуйста. Вот здесь возникает race condition.
https://play.golang.org/p/TLNkmhiPrxn
Конечно все это решить можно используя sync.Mutex но мне казалось что здесь лучше атомики использовать.
Но найденные примеры выглядят как то страшновато. https://stackoverflow.com/questions/36133364/are-reads-and-writes-for-uint8-in-golang-atomic
Неужели мне проще использовать int64 вместо uint8? а от uint8 отказаться вообще?
источник

AC

Amber Claes in Go-go!
Алексей Долгов
Коллеги подскажите пожалуйста. Вот здесь возникает race condition.
https://play.golang.org/p/TLNkmhiPrxn
Конечно все это решить можно используя sync.Mutex но мне казалось что здесь лучше атомики использовать.
Но найденные примеры выглядят как то страшновато. https://stackoverflow.com/questions/36133364/are-reads-and-writes-for-uint8-in-golang-atomic
Неужели мне проще использовать int64 вместо uint8? а от uint8 отказаться вообще?
А зачем тебе вообще uint8?
источник

АД

Алексей Долгов... in Go-go!
Amber Claes
А зачем тебе вообще uint8?
ну это количество попыток, оно всегда больше 0. не должно быть минусов. Ну и 255 мне хватит вполне, кому нужно использовать 300 попыток
источник

s

sexst in Go-go!
Shaoron Steiner
netstat -p ?
netstat deprecated. ss за него
источник

AC

Amber Claes in Go-go!
Amber Claes
Перевёл проект на go модуль, теперь появилась проблема с импортами
https://pastebin.com/6wLTdUa7

Подскажите как правильно делать импорты в модулях
Неужели мне делать
import "github.com/ACLzz/keystore-client/src/secrets"

?)
источник

ВС

Владимир Столяров... in Go-go!
да, так и нужно
источник

н

немедленно in Go-go!
Алексей Долгов
ну это количество попыток, оно всегда больше 0. не должно быть минусов. Ну и 255 мне хватит вполне, кому нужно использовать 300 попыток
юзай int32, разницы не заметишь
источник

АД

Алексей Долгов... in Go-go!
немедленно
юзай int32, разницы не заметишь
или uint32? тоже норм вроде?
источник

н

немедленно in Go-go!
или sync.WaitGroup судя по примеру
источник