1.1 KiB
1.1 KiB
pubsub
В этой задаче нужно написать простую шину событий работающую по принципу pub/sub.
В файле pubsub.go заданы интерфейсы PubSub
/Subscription
с подробным описанием всех методов.
Требования к системе:
- На один топик может подписываться (и отписываться) множество подписчиков.
- FIFO для сообщений, вы не должны терять их порядок.
- Один медленный подписчик не должен тормозить остальных.
- Метод Close должен уважать переданный контекст, так если он отменен - выходим сразу, бегущие хендлеры оставляем бежать.
- Если будут использоваться горутины - они не должны течь :)
Нужно написать реализацию и конструктор (см. my_pubsub.go):
func NewPubSub() PubSub