В моем проекте у меня есть центральный компонент, который выполняет несколько сервисов внутри одного процесса. Например, есть планировщик , который опросает данные из БД и запускает задание (возможно одновременное выполнение заданий). И когда завершается работа , она уведомляет планировщика. Существует также служба уведомлений , которая отправляет письма или другие сервисные опросы другого сервера, чтобы уведомить ожидающие задания и т. Д. Для такого приложения я чувствую, что дизайн, ориентированный на события, является хорошей идеей для сокращения развязки. Моя конечная цель - уменьшить сложность. У меня нет проблемы с производительностью. Вот некоторые идеи:Рекомендации по потоку данных TPL, Akka.NET, а также для проекта, управляемого событиями для одного процесса?
- Используйте события или Реактивные расширения с центральным концентратором на Опубликовать Подписка механизм.
- Использование TPL Dataflow
- Использование AKKA.NET
мне все подходы выглядят законны, хотя:
1) намного проще реализовать, хотя это может быть слишком просто, чтобы бороться от сложности.
2) TPL Dataflow выглядит неплохо, но из документации в нем указано, что это подходит для тяжелых процессоров или ввода/вывода. Ни одна из них не проблема для меня. Кроме того, в отличие от подхода AKKA TPL DataFlow - это единственная вещь процесса. Если в будущем мне нужно будет отделить эти службы от отдельных процессов, мне придется изменить какой-то код.
3-) Акка сильно подчеркивает параллелизм и проблемы с долговечностью. Кажется, это хороший выбор, если в будущем мне нужно будет отделить эти службы от небольших процессов, но это может быть слишком сложным для реализации.
Как вы думаете?
Этот вопрос поощряет мнения, основанные на мнениях, поэтому здесь не по теме. – Enigmativity
Если этот вопрос поощряет ответы на основе мнения, то половина всех вопросов делает то же самое. –
@Enigmativity вот один из ваших вопросов: http://stackoverflow.com/questions/7035781/shadowing-inherited-generic-interface-members-in-net-good-bad-or-ugly –