Sobes.tech

Golang

Kuidas tagati arvutuste korduvusus — et kogu töötajate rühmale kehtisid samad tingimused?

Middle+
А7
78

Mida tuleb teha, et PostgreSQL andmed pärast konteineri taaskäivitamist ei kaoks?

Middle
Сбертех
78

Räägi Kafka omadustest — kuidas see on üles ehitatud?

Middle+
Napoleon IT
78

Millal arvutatakse edasi lükatud funktsioonide argumendid — määramise ajal või väljakutse ajal?

Senior
КасперскийКасперский
78

Kas me saame kirjutada koodi ilma kasutajaliidesteta?

Middle+
Napoleon IT
78

Miks kasutatakse peamiselt Legacy-süsteemide jaoks triggereid?

Middle+
Озон банк
78

Milles täpselt sa tegelesite oma praegusel töökohal? Mis on teie vastutusalad?

Senior
Суточно.руСуточно.ру
78

Mis juhtub, kui lugeja sulgeb kanali, ja kirjanik veel kirjutab? Kuidas vältida paanikat?

Middle+
Астрал-Софт
78

Kas saab kirjutada suletud kanalisse Go-s?

Senior
purrweb
78

Kuidas vältida lõplikku blokeerimist tühja kanali lugemisel? Mis on select ja millised on selle mustrid?

Senior
YadroYadro
78

Miks otsustasid tähelepanu pöörata turule? Mida praegu endale otsid? Millele pöörad tähelepanu, valides uut ettevõtet?

Senior
Магнит Тех
78

Kas on mehhanisme, mis aitavad vältida kokkupõrkeid programmeerimisel?

Middle+
OZONOZON
78

Otseülekande kodeerimine: semafor — kuidas see töötab ja selle rakendamine pufferkanali põhjal.

Middle+
Веро Трейс
78

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("Backends in slice count 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 contain all the addresses of the balanced instances 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
Яндекс
78

Miks meil on selle ülesande jaoks vaja WaitGroup?

Senior
Cloud.ru
78

Mis juhtub, kui käivitada goroutine ja kutsuda seal panic?

Senior
Лаборатория Касперского
78

Kui palju ridu oli andmebaasis?

Senior
Бюро 1440Бюро 1440
78

Miks sul üldse tööjuures juht vaja on? Milleks?

Senior
Ozon ФинтехOzon Финтех
78

Milliseid lukustusi loob PostgreSQL, kustutades konkreetseid ridu?

Senior
Итрея
78

Mis on init-konteinerid ja sidecar-konteinerid?

Senior
SelectelSelectel
78
/412