许多小服务vs一个更大的服务

时间:2010-11-04 11:38:44

标签: windows-services

我们正在努力创建一个Windows服务,以便从各个地方导入/导出数据。

我们的服务目前有以下方法,每个方法都在自己的定时器上运行。

ImportFromFoo
ImportFromFoo2
ExportToFoo
ExportToFoo2

从长远来看,将有10多种不同的导入/导出,所有导入都在不同的定时器上运行。它们都太具体而不能通用,因为数据以许多不同的方式发送和检索,并且对每个导入/导出的数据执行不同的操作。我正在努力解决的问题是,如果我们最好将服务拆分,那么每个导入/导出都存在于自己的服务中。

据我所知,好处是:

  1. 编程/调试将更简单,因为我们不必担心线程,可以专注于在自己的环境中编码/测试每个模块。
  2. 一次导入/导出失败不会导致其他导入/导出失败。
  3. 缺点是只需要维护更多的项目/服务。

    我只是想知道其他人的意见是什么,如果有很多小服务而不是一个更大的服务被认为是不好的做法。

    修改

    所有服务都将在我们的应用服务器上运行,因此我们只需要维护它们,而不是用户。

1 个答案:

答案 0 :(得分:2)

我非常支持创建多种服务。不这样做的唯一原因是,如果用户系统出现重大性能问题,则启动10+服务而不是1。

单独的服务将允许您:

  • 在安装过程中询问用户他们希望安装哪些服务以及他们希望在启动时自动运行哪些服务。
  • 允许用户手动停止他们不需要的任何流程,或者如果您有管理工具,则允许用户停止。
  • 更简单的部署/升级路径,您可以在不影响已经运行的服务的情况下安装新服务。

我没有看到多个项目是一个问题,任何好主意应该允许您管理和构建它们。