TGStat
TGStat
Type to search
Advanced channel search
  • flag English
    Site language
    flag Russian flag English flag Uzbek
  • Sign In
  • Catalog
    Channels and groups catalog Regional compilations Thematic compilations Платные каналы Search for channels
    Add a channel/group
  • Ratings
    Rating of channels Rating of groups Posts rating
    Ratings of brands and people
  • Analytics
  • Search by posts
  • Telegram monitoring
  • Promotion
    Advertising through Yandex Business Advertising in channels through TGStat Agency Advertising on TGStat.ru website
Maxim Korobov — DevBlog

15 Mar, 18:42

Open in Telegram Share Report

Ну чтож, время разобрать задачку с собеса одного из РФ БигТехов 🟠

К счастью, на этот раз без душных алгоритмов, довольно прикладная задача. Суть следующая:


Есть N экземпляров одного микросервиса. Нужно реализовать Balancer, который:
- отправляет запрос на наименее нагруженный бэкенд
- блокирует бэкенд на 1 час, если за последние 10 минут он вернул 100+ ошибок


бэкенд из себя представляет обыкновенный интерфейс


type Backend interface {
Invoke(ctx context.Context, req Request) (Response, error)
}


структура балансера, которую надо заполнить


type Balancer struct {
// Your code
}


Необходимо реализовать метод балансера:


func (b *Balancer) Invoke(ctx context.Context, req Request) (resp Response, err error) {
// Your code
return resp, nil
}


Своим решением поделюсь в комментариях, но оставлю скрытую ошибку (может не одну) 👀
Пишите в комментариях, сколько ошибок нашли - потом подведём итоги

84 0 4 1 7
Catalog
Channels and groups catalog Channels compilations Search for channels Add a channel/group
Ratings
Rating of Telegram channels Rating of Telegram groups Posts rating Ratings of brands and people
API
API statistics Search API of posts API Callback
Our channels
@TGStat @TGStat_Chat @telepulse @TGStatAPI
Read
Академия TGStat Telegram Research 2019 Telegram Research 2021 Telegram Research 2023
Contacts
Справочный центр Support Email Jobs
Miscellaneous
Terms and conditions Privacy policy Public offer
Our bots
@TGStat_Bot @SearcheeBot @TGAlertsBot @tg_analytics_bot @TGStatChatBot