Помогите грамотно подойти к решению задачи.
Есть много асинхронных ззадач, которые по snmp периодически опрашивают параметры девайсов.
Результаты должны:
- сохраниться в бд.
- отображаться на экране.
- отправляться в почту или еще куда.
Думал сделать так:
- используя channel из System.Threading записывать в него результаты задач.
- читать из channel и бросать события с прочитанными данными.
- бд, экран, почта подпишутся на эти события и будут делать свою работу с полученными в событии данными.
Ощущение, что либо события здесь лишние, либо каналы.
Кажется, что достаточно чтобы таски просто сразу кидали события.
Как такую задачу лучше решить?
Upd. Не плохая иллюстрация, того как можно сделать. Теперь более менее понятно для себя. Единственное, плохо или нет, если все задачи будут сразу бросать события?
Upd. подумал, что таки очередь нужна или синхронизация, иначе в бд окажется не актуальное состояние.
Одновременно с задачами опроса устройств стартует задача, которая очередь разбирает и выплевывает события. Кому надо подпишутся. Очередность вроде не важна. Подумаю на этот счет.
– dmitriy Dec 09 '22 at 17:56event, а если асинхронно, то как-то так https://ru.stackoverflow.com/a/1300322/373567. Channels вам не подходят. – aepot Dec 10 '22 at 09:08