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