.NET Windows Service - архитектурные решения - PullRequest
2 голосов
/ 18 августа 2010

В настоящее время у меня есть служба Windows, которая постоянно работает в течение дня.Он имеет несколько потоков, которые запускают:

  • задач ежедневно для обновления кэша
  • задач еженедельно для очистки
  • 24/7 задач для импорта XML в SQL Server
  • задач, которые выполняются около 12 часов в день, начиная консольное приложение для управления ETL

Задачи не являются важной частью этого вопроса, но это дает вам представление о том, что эта Windowsсервис вырос, чтобы стать монстром.Он управляет импортом где-то в районе 300 миллионов записей в день.

Это беспокойно, но это работает.

Эта итерация разработки дает мне возможность просмотреть сервис ивозможно сломать это так, чтобы это было более управляемым.Предполагается, что это может быть несколько служб с одной службой менеджера - идеально, если компонент нуждается в обновлении, тогда все это не нужно перемалывать в хаот.

У кого-нибудь есть опыт работы с этим?Я хотел бы услышать о вашем подходе, потому что это новая территория для меня.

Я прочитал этот ТАК пост, который затрагивает тему.

Приветствия.

Ответы [ 3 ]

4 голосов
/ 18 августа 2010

Ваше описание очень похоже на то, что я написал 2 года назад.Служба Windows, которая размещает надстройки и запускает их в многопоточной среде.Используемая архитектура - это надстройка .NET, представленная в .NET 3.5 (System.AddIn-namespace).Это работает как очарование, поскольку я также интегрировал живые / горячие обновления.Это так легко реализовать новые надстройки и просто подключать их в любое время.Поэтому я очень рекомендую использовать это дополнение.

См. http://msdn.microsoft.com/en-us/library/cc175292.aspx для быстрого запуска.

1 голос
/ 18 августа 2010

Я сделал нечто подобное для наших фоновых сервисов, в основном это ServiceHost и «Сервлеты», которые загружаются через домены приложений, поэтому они не влияют друг на друга.

0 голосов
/ 18 августа 2010

Почему услуга?Практически ничего из того, что вы делаете, кроме задачи 24/7 для импорта, я бы не делал как службу.

Я бы использовал:

  • Любые программы командной строкикоторые регулярно планируются, особенно для ежедневных / еженедельных задач
  • Или используйте SSIS и SQL Scheduler для планирования чего-либо.Импорт XML - если вы не можете запустить его, например, каждые 5 минут.
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...