Sobes.tech

Golang

Wat was de grootste hoeveelheid opgeslagen gegevens?

117

Met welke databases en andere gegevensopslagsystemen hebt u gewerkt?

116

// code voor de best() functie // met foutafhandeling voor geen backend beschikbaar

111

In welke richting zou je geïnteresseerd zijn in ontwikkeling op het gebied van taken en carrièrerichting?

108

// code voor de best() functie // met foutafhandeling voor geen backend beschikbaar

105

Waarom overweeg je nieuwe aanbiedingen en waarom heb je je vorige bedrijf verlaten?

104

Hoe beperk je het aantal goroutines zodat niet meer dan 'threads' methoden van Process gelijktijdig worden uitgevoerd? Wie zal taken uit het kanaal halen?

102

// code voor de best() functie // met foutafhandeling voor geen backend beschikbaar

92

// code voor de best() functie // met foutafhandeling voor geen backend beschikbaar

92

Wie leest het resulterende kanaal en waar schrijft het vervolgens het resultaat zodat de Status-methode er toegang toe heeft?

90

Op hoeveel hosts of instanties werkte de service? Hoeveel containers werden gestart?

88

// code voor de best() functie // met foutafhandeling voor geen backend beschikbaar

84

// code voor de best() functie // met foutafhandeling voor geen backend beschikbaar

84

Hoe implementeer je de Status-methode om de taakstatus op te halen op basis van ID?

72

type Response interface{} type Backend interface { Invoke(ctx context.Context, req Request) (Response, error) } var _ Backend = &BackendImpl{} // addr bevat ip:port van een specifieke instantie func NewBackend(addr string) *BackendImpl type backentry struct { backend Backend inflight int64 } type Balancer struct { backends []*backentry mu *sync.Mutex } var _ Backend = &Balancer{} // addrs bevatten de adressen van alle balanceerbare instanties func NewBalancer(addrs []string) *Balancer { data := make([]*backentry,len(addrs)) for i,addr := range addrs{ data[i] = &backentry{ backend: NewBackend(addr), inflight: 0, } } return &Balancer{backends:data} } func(b *Balancer)Invoke(ctx context.Context, req Request) (Response, error){ b.mu.Lock() entry := b.best() atomic.AddInt64(&entry.inflight,1) b.mu.Unlock() defer atomic.AddInt64(&entry.inflight,-1) return entry.backend.Invoke(ctx,req) } func(b *Balancer) best() *backentry{ var best *backentry for _,entry := b.backends{ if best == nil || atomic.LoadInt64(&entry.inflight) < atomic.LoadInt64(&best.inflight){ best = entry } } return best }

68

// code voor de best() functie // met foutafhandeling voor geen backend beschikbaar

67

// code voor de best() functie // met foutafhandeling voor geen backend beschikbaar

57

// op zoek naar de beste -- ??? // als niet gevonden, vergelijk inflight

48
/11