Несколько подписчиков, одна очередь

Помогите грамотно подойти к решению задачи.

Есть много асинхронных ззадач, которые по snmp периодически опрашивают параметры девайсов.

Результаты должны:

  1. сохраниться в бд.
  2. отображаться на экране.
  3. отправляться в почту или еще куда.

Думал сделать так:

  1. используя channel из System.Threading записывать в него результаты задач.
  2. читать из channel и бросать события с прочитанными данными.
  3. бд, экран, почта подпишутся на эти события и будут делать свою работу с полученными в событии данными.

Ощущение, что либо события здесь лишние, либо каналы.

Кажется, что достаточно чтобы таски просто сразу кидали события.

Как такую задачу лучше решить?

Upd. Не плохая иллюстрация, того как можно сделать. Теперь более менее понятно для себя. Единственное, плохо или нет, если все задачи будут сразу бросать события?введите сюда описание изображения

Upd. подумал, что таки очередь нужна или синхронизация, иначе в бд окажется не актуальное состояние.


Ответы (0 шт):