我目前有一个Windows服务,它持续全天运行。它有多个线程启动:
任务不是这个问题的重要部分,但它让你知道这个Windows服务已经成长为一个怪物。它管理着每天3亿条记录中某处的进口。
很忙,但它确实有效。
这个开发的迭代让我有机会审查服务并可能将其分解,以使其更易于管理。据认为,这可能是一个管理服务的多个服务 - 如果一个组件需要更新,那么理想的是整个事情不需要苛刻。
有没有人有这方面的经验?我很想知道你的做法,因为这对我来说是一个新的领域。
我已阅读this SO帖子,其中涉及该主题。
干杯。
答案 0 :(得分:4)
你的描述听起来很像我2年前写的东西。一个承载插件的Windows服务,并在多线程环境中运行它们。使用的体系结构是.NET 3.5(System.AddIn-namespace)中引入的.NET addin管道。它就像一个魅力,因为我也集成了实时/热门更新。实现新的插件非常容易,只要我愿意,就可以插入它们。所以我真的建议使用这个插件。
请参阅http://msdn.microsoft.com/en-us/library/cc175292.aspx了解快速入门。
答案 1 :(得分:1)
我已经为我们的后台服务做了类似的事情,基本上有一个ServiceHost和“Servlets”,它们通过appdomains加载,因此它们不会相互影响。
答案 2 :(得分:0)
为什么要提供服务?除了24/7的进口任务外,你所做的一切都不是我作为一项服务所做的事情。
我会用:
唯一可以证明服务合理性的是24/7 XML导入 - 除非您可以每隔5分钟就开始启动它。