Junior — Senior
60
Параллельный запрос к нескольким репликам БД
Условие задачи
Имеются три адреса реплик базы данных. Необходимо написать функцию, которая одновременно (в параллельных горутинах) запрашивает значение по заданному ключу у каждой из реплик. Как только одна из реплик возвращает корректный результат (значение, отличное от ErrNotFound и без ошибок), функция должна сразу же вернуть полученное значение и отменить ожидание остальных запросов.
127.0.0.1
127.0.0.2
127.0.0.3
Для работы предоставлен следующий метод (его реализация уже есть):
var ErrNotFound = errors.New("not found")
func Get(ctx context.Context, address, key string) (string, error) {
return "", nil // already implemented
}