Sobes.tech

Golang

Wat werd er in de cache opgeslagen? Sommige directories?

Senior
МВидео/эльдорадо
166

/* We moeten gegevens van een bron naar een ontvanger overbrengen. De bron levert de gegevens in kleine pakketten (~tientallen records), terwijl de ontvanger efficiënter werkt met grotere batches. Een echt voorbeeld is het overzetten van gegevens van Kafka-achtige wachtrijen naar de Clickhouse-database. Bron: - Bijna oneindig. - De bron geeft nooit meer dan MaxItems records terug in één Next-aanroep. - Tijdens één "sessie" (één aanroep van de Pipe-functie) geeft de bron bij elke Next nieuwe gegevens. - Na een herstart begint de bron weer vanaf de vorige "bevestigde" positie, aangegeven door cookie. Daarom moet elke waarde van cookie die Next teruggeeft, na het opslaan van de gegevens in de ontvanger, worden bevestigd met een Commit-aanroep, in dezelfde volgorde als waarin ze door Next werden teruggegeven. Ontvanger: - Kan niet meer dan MaxItems tegelijk verwerken. Basisniveau: Het is nodig om de functie func Pipe(p Producer, c Consumer) error te implementeren, die gegevens uit de bron leest, ze groepeert in een buffer van niet meer dan MaxItems en opslaat in de ontvanger, en vervolgens de voortgang in de bron bevestigt. */ const MaxItems = 9999 type Producer interface { // Next geeft terug: // - een batch van items om te verwerken // - een cookie om te bevestigen wanneer de verwerking is voltooid // - een fout Next() (items []any, cookie int, err error) // Commit wordt gebruikt om de gegevensbatch als verwerkt te markeren Commit(cookie int) error } type Consumer interface { Process(items []any) error } func Pipe(p Producer, c Consumer) error { var buf []any var cookies []int for { items, cookie, err := p.Next() if err != nil { return err } buf = append(buf, items...) cookies = append(cookies, cookie) if len(buf) >= MaxItems { if err := c.Process(buf); err != nil { return err } for _, c := range cookies { if err := p.Commit(c); err != nil { return err } } buf = buf[:0] cookies = nil } } if len(buf) > 0 { if err := c.Process(buf); err != nil { return err } for _, c := range cookies { if err := p.Commit(c); err != nil { return err } } } return nil }

Middle
Яндекс
166

Kunt u de bedrijven of leveranciers noemen waarmee u te maken hebt gehad?

Junior — Middle
166

Vertel over je laatste baan: wat deed je, welke stack gebruikte je, wat waren de moeilijke taken?

Middle
OZONOZON
166

Wat is een slice in Go?

Middle
Бюро 1440Бюро 1440
166

Kunt u de belangrijkste typen oproepen die in gRPC worden gebruikt, opsommen?

Junior — Middle
СБЕР дейвайсыСБЕР дейвайсы
166

Is het toegestaan om informatie uit een kanaal met ingeschakelde gesloten modus te verkrijgen?

Junior — Middle
ГазпромГазпром
X5 groupX5 group
AvitoAvito
+1
166

Is het mogelijk om rechtstreeks naar een specifieke Kafka-partitie te schrijven, zonder de sleutel voor hashing te gebruiken?

Junior — Middle
Самокат Тех
166

Kun je het mechanisme uitleggen van het toevoegen van een element aan het einde van een gegevensstructuur, zoals een lijst of array?

Junior — Middle
Lamoda Tech
Startribe
Самокат Тех
+2
166

Welke gegevens en op welke manier worden in de stack geplaatst tijdens het uitvoeren van het programma?

Junior — Middle
166

Welke caching-methoden gebruik je het liefst in je projecten en waarom?

Junior — Middle
166

Wat is het verschil tussen een gematerialiseerde view en een gewone view?

Middle
RWB
165

Welke componenten maken deel uit van de structuur van een gekoppelde lijst?

Junior — Middle
165

Hoe wordt de uitvoeringstijd van de bewerking om een element met een sleutel toe te voegen aan de Map-gegevensstructuur bepaald?

Junior — Middle
ЯндексЯндекс
165

Waarom wordt de initiële grootte van de stack van threads meestal ingesteld op 2 MB?

Junior — Middle
165

Heeft u ooit de ErrGroup-structuur gebruikt in uw projecten voor het beheren van parallelle taken?

Junior — Middle
165

Welke ongebruikelijke of niet-standaard pakketten hebt u in uw praktijk gebruikt?

Junior — Middle
165

Waarom vertraagt de groei van de plak en waarom kan je niet constant verdubbelen?

Middle
RWB
165

Op welke plek worden de commando's uitgevoerd tijdens het werkproces van GitLab CI/CD?

Junior — Middle
165

Welke gevolgen kunnen er optreden bij het niet naleven van de SOLID-principes bij softwareontwerp?

Junior — Middle
Zonatelecom
165
/413