想知道在单个 Windows 服务中托管多个 WCF 服务是否是一种好习惯,除此之外,同一个 Windows 服务还将执行一些其他逻辑,例如使用 Timer 对象或类似对象运行定期任务。
是否建议将所有这些都包含在一个 Windows 服务中,还是建议将其拆分为多个服务?
谢谢
想知道在单个 Windows 服务中托管多个 WCF 服务是否是一种好习惯,除此之外,同一个 Windows 服务还将执行一些其他逻辑,例如使用 Timer 对象或类似对象运行定期任务。
是否建议将所有这些都包含在一个 Windows 服务中,还是建议将其拆分为多个服务?
谢谢
我想说创建两个 Windows 服务:一个用于托管多个 WCF 服务,另一个用于运行作业。这样,如果您需要停止第二个,您也不必关闭您的 Web 服务。
顺便说一句,我经常使用Quartz.NET作为作业调度框架。
我认为这取决于您是否将所提供的功能视为一个单元,或者可能是几个可以相互独立使用的单元。
如果所有功能都属于一起,当然,您可以将它们全部归为一个服务。您可以将这些功能作为它们自己的任务运行,即在它们自己的线程中。然后,当服务启动时,所有功能都可用,而当服务停止或暂停时,所有功能也会发生这种情况。
如果功能之间没有这种直接联系和/或您希望它们可以独立启动和停止,那么最好的选择是恕我直言,让它们成为独立的服务。