0

我正在开发一个需要在不同时间完成多项任务的解决方案。例子:

  • 任务 1 - 监控邮箱,处理邮件项目
  • 任务 2 - 监控邮箱(不同文件夹),处理邮件项目
  • 任务 3 - 生成 PDF 报告
  • 任务 4 - 监控文件夹,在新文件到达时通过电子邮件将文件作为附件分发。

我已经实现了这个解决方案,但是,它基本上只是一个快速修复,让事情运行起来。现在它已经启动了,我想重新审视当前的设置并改进它,使其尽可能高效。

对于当前的解决方案,我为每个不同的任务创建了一个单独的应用程序,并使用任务计划程序在特定时间执行它们。

  • 任务 1 是一个控制台应用程序,每 5 分钟在计划任务上运行一次
  • 任务 2 是一个控制台应用程序,每 5 分钟在计划任务上运行一次(在第一个应用程序之后 2 分钟,这是因为任务 1 会将电子邮件移动到任务 2 正在监视的文件夹中)
  • 任务 3 每天早上 5 点运行,作为计划任务上的 runonce 应用程序
  • 任务 4 正在不确定地运行。

我的问题是,这似乎是解决此类应用程序的合理方法吗?有些任务作为服务而不是应用程序看起来更好吗?

4

2 回答 2

2

我想我可能会使用一个可以轻松配置为运行各种任务的服务(因此,如果您以后想将它们分开,您可以这样做)。

调度特定的应用程序是可以的,当然也是一种更简单的工作方式,但这对我来说更像是一种服务。当然,如果您将“做事”逻辑与事物的“调用”侧分开,您可以轻松地从一个切换到另一个。

这个决定不太可能改变事情的效率方面。你现在有充分的理由担心整体效率吗?您是否分析过您的应用程序以找出瓶颈所在?我会说他们不太可能在日程安排方面。

于 2009-10-12T09:04:21.867 回答
1

服务听起来像是解决此问题的正确方法。

长时间运行的子任务(例如 PDF 生成)非常适合使用异步编程方法执行,即使用完成后回调父线程的工作线程。这样,监控任务可以独立于操作任务运行。

于 2009-10-12T09:54:17.187 回答