Size: a a a

2020 July 02

VP

Vlad Python in Go-go!
Добрый день возможен ли такой вариант воркера?

go func(){
   for {
      select {
            case <-context.Done():
                  return
            case <-channelForWorker:
                  // что-то делаем
                  }
 
           }
}()
источник

DP

Daniel Podolsky in Go-go!
стандартный вариант
источник

DP

Daniel Podolsky in Go-go!
а что?
источник

VP

Vlad Python in Go-go!
я имею ввиду, что когда читаем постоянно из канала, в который пока что ни кто не написал...
источник

Д

Дмитрий in Go-go!
Vlad Python
я имею ввиду, что когда читаем постоянно из канала, в который пока что ни кто не написал...
Так каналы так и работают, в них иногда никто не пишет.
источник

y

yelsh in Go-go!
Daniel Podolsky
как обычно - кладем файликами.

тут есть нюанс - под линуксом у go не работает priveleges drop. поэтому есть проблемки с запуском и чтением сертов из-под рута, а потом переходом к непривелигерованному юзеру

но!

все равно letencrypt надо обновлять постоянно, и, соответственно, непривелигерованный юзер в пролете.

так что - кладем с правильным юзером
мне всегда казалось, что проще обложить приложение контейнером с nginx с автообновлением let’s encrypt, чем добавлять поддержку у себя
источник

VP

Vlad Python in Go-go!
дедлока не будет?
источник

DP

Daniel Podolsky in Go-go!
yelsh
мне всегда казалось, что проще обложить приложение контейнером с nginx с автообновлением let’s encrypt, чем добавлять поддержку у себя
казалось
источник

DP

Daniel Podolsky in Go-go!
Vlad Python
дедлока не будет?
нет
источник

АП

Александр Попов... in Go-go!
ну текущая гоурутина будет заблокирована :) 4кб памяти минимум выжрет
источник

DP

Daniel Podolsky in Go-go!
Александр Попов
ну текущая гоурутина будет заблокирована :) 4кб памяти минимум выжрет
коллега, идите работать
источник

DP

Daniel Podolsky in Go-go!
:)
источник

АП

Александр Попов... in Go-go!
:(
источник

w

whoami in Go-go!
Добрый день! Подскажите, где можно посмотреть реализацию валидаций?
Вот у меня есть модель в виде структуры
type User struct {
 Bdate time.Time `json:"bdate"`
}
в хендлере запроса я демаршализирую входной json в эту структуру и мне необходимо, чтобы если в json отсутсвует bdate, то хендлер возвращал http.StatusBadRequest

Как это лучше всего реализовать? Проверять user.Bdate == nil ? Есть ли универсальные решения?
источник

с

сонная википедия... in Go-go!
whoami
Добрый день! Подскажите, где можно посмотреть реализацию валидаций?
Вот у меня есть модель в виде структуры
type User struct {
 Bdate time.Time `json:"bdate"`
}
в хендлере запроса я демаршализирую входной json в эту структуру и мне необходимо, чтобы если в json отсутсвует bdate, то хендлер возвращал http.StatusBadRequest

Как это лучше всего реализовать? Проверять user.Bdate == nil ? Есть ли универсальные решения?
ну если в JSON'е не будет bdate, bdate будет иметь нулевое значение
источник

АП

Александр Попов... in Go-go!
whoami
Добрый день! Подскажите, где можно посмотреть реализацию валидаций?
Вот у меня есть модель в виде структуры
type User struct {
 Bdate time.Time `json:"bdate"`
}
в хендлере запроса я демаршализирую входной json в эту структуру и мне необходимо, чтобы если в json отсутсвует bdate, то хендлер возвращал http.StatusBadRequest

Как это лучше всего реализовать? Проверять user.Bdate == nil ? Есть ли универсальные решения?
для начало в экспортруемых структурах надо ПУБЛИЧНЫЕ свойства делать
источник

АП

Александр Попов... in Go-go!
ибо для json это внешний пакет
источник

АП

Александр Попов... in Go-go!
(c большой буквы)
источник

w

whoami in Go-go!
Александр Попов
для начало в экспортруемых структурах надо ПУБЛИЧНЫЕ свойства делать
Да, опечатался, там конечно Bdate
источник

с

сонная википедия... in Go-go!
сонная википедия
ну если в JSON'е не будет bdate, bdate будет иметь нулевое значение
можно проверять на zero value, но если этот вариант не подходит(вам нужно хендлить Unix epoch ¯\_(ツ)_/¯), то тогда нужно использовать *time.Time и проверять на nil
источник