Sobes.tech

Golang

Por qual motivo estás a considerar a mudança? O projeto passa a suporte ou há outras razões?

Senior
РамблерРамблер
85

type Balancer struct { // TODO backends []*BackendImpl index int mu sync.Mutex N int K time.Duration } var _ Backend = &Balancer{} func (b *Balancer) Invoke(ctx context.Context, req Request) (Response, error) { if len(b.backends) == 0 { return nil, fmt.Errorf("Número de backends no slice 0") } b.mu.Lock() index := b.index for b.backends[index].banned { b.index = (b.index + 1) % len(b.backends) index = b.index } b.index = (b.index + 1) % len(b.backends) b.mu.Unlock() backend := b.backends[index] resp, err := backend.Backend.Invoke(ctx, req) if err != nil && backend.countErrors < b.N { backend.mu.Lock() backend.countErrors += 1 if backend.countErrors == b.N { backend.banned = true go func() { time.Sleep(b.K) backend.mu.Lock() defer backend.mu.Unlock() backend.banned = false backend.countErrors = 0 }() } backend.mu.Unlock() } return resp, err } // addrs contêm os endereços de todas as instâncias balanceadas func NewBalancer(addrs []string) *Balancer { // TODO backends := make([]*BackendImplF, len(addrs)) for _, addr := range addrs { implF := BackendImplF{ Backend: NewBackend(addr), } backends = append(backends, &implF) } }

Middle
Яндекс
85

Qual metodologia utiliza: Scrum, Kanban ou uma mistura?

Senior
РамблерРамблер
85

Existiram tarefas que você realmente não quis fazer? Como lidou com tarefas desagradáveis?

Senior
X5 groupX5 group
85

Qual é a diferença entre um canal bufferizado e não bufferizado em Go?

Senior
Магнит Тех
85

Como funcionam as operações atômicas?

Middle
VKVK
85

Como se chama esta métrica que relaciona cliques e impressões?

Senior
МВидеоМВидео
85

O que é um índice B-tree?

Senior
purrweb
85

Erro: # command-line-arguments 2486763/main.go:34:9: indefinido: sync 2486763/main.go:35:9: indefinido: sync 2486763/main.go:45:32: indefinido: fmt.Errorf

Senior
СБК ПАРУС
85

Que dados não devem ser colocados em cache?

Middle
VKVK
85

pacote principal importar "tempo" func trabalhador() canal de int { ch := make(chan int) go func() { tempo.Sleep(3 * tempo.Segundo) ch <- 42 }() return ch } func main() { timeStart := time.Now() _, _ = <-trabalhador(), <-trabalhador() println(int(time.Since(timeStart).Seconds())) // }

Middle+
МВидео/эльдорадо
85

Fale sobre o pool de objetos: o que é e como funciona?

Senior
FinFrame
85

O modelo com tags JSON (por exemplo, RegisterUserRequest) é um modelo de domínio? Como separar corretamente DTO e entidade de domínio?

Senior
ИП Ганус Александр Андреевич
85

Que bases de dados e brokers de mensagens você usa na sua stack?

Senior
OZONOZON
85

Pode usar um índice composto (A, B, C) ao filtrar apenas pela coluna B?

Middle+
А7
85

Fala-me sobre CTE (Expressão de Tabela Comum).

Middle
RWB
85

Escreva uma consulta que selecione os nomes dos funcionários que conhecem SQL e pelo menos uma outra linguagem. Considere que um funcionário é um nome único.

Middle
WildberriesWildberries
85

Qual é a sintaxe das transações em Go/SQL?

Middle+
Magnit Tech
85

Quais são os planos para o próximo ano — o que aprender, dominar?

Senior
I-teco
85

Por que saiu da [empresa]? Qual foi a motivação?

Junior
Позитив Технолоджис
84
/412