Post Thumbnail

Статья показывает, как в Go аккуратно батчить данные, поступающие в реальном времени, на примере обновления поля last_active_at для каждого запроса пользователя - вместо тысяч одиночных UPDATE группировать их в один UPDATE ... WHERE id IN (...).

Суть подхода в том, что публичная функция UpdateUserTimestamp отправляет ID в общий канал-очередь и блокируется, ожидая ответ от воркера через персональный буферизованный канал ReplyTo. Воркер накапливает ID в батчи заданного размера с таймаутом, чтобы в тихие периоды не копить запросы слишком долго, и обрабатывает их с управляемой конкуренцией через авторскую библиотеку rill

У автора, кажется, получилось скрыть сложность за простотой вызова

Похожее

Post Thumbnail

C на Go

Интересный пропозал - добавить возможность сборки Go-пакетов, использующих cgo д...

Post Thumbnail

Rune

Команда Unstable Build заопенсорсила свою нативную IDE Rune, написанную на Go. ...