1. По теории стандартные вопросы абсолютно.
2. Задача: Реализовать метод Run для QueueAggregator
package main
import "sync"
type Session struct {
ProjectID string
Data []byte
}
type ProjectSessions struct {
ProjectID string
Sessions []Session
}
type QueueAggregatorCfg struct {
FlushInterval time.Duration
MaxSessionsPerProject int
}
type QueueAggregator struct {
cfg QueueAggregatorCfg
}
func NewQueueAggregator(cfg QueueAggregatorCfg) *QueueAggregator {
return &QueueAggregator{cfg: cfg}
}
// Входные данные: слайс каналов chs, где сессии поступают в перемешанном виде по нескольким проектам
// Выходной результат: канал, в который отправляются…