【发布时间】:2010-11-02 17:20:36
【问题描述】:
我正在用 ASP.NET 3.5 编写一个 Web 应用程序,它负责一些基本的数据输入方案。应用程序还有一个组件需要不断地轮询一些数据并根据业务逻辑执行操作。
实现“轮询”组件的最佳方式是什么?它需要每隔几分钟左右运行并检查一次数据。
过去我见过几个不同的选择:
- Web 应用程序启动一个后台线程,该线程将始终在 Web 应用程序运行时运行。 (我看到的实现在 Application_Start 事件中启动了线程。)
- 创建始终运行的 Windows 服务
这些选项有什么好处?还有其他选择吗?
我倾向于使用 Windows 服务,因为它是独立的,可以在不同的服务器上运行(更具可扩展性),并且可以更好地控制它的启动/停止时间等。但是,我觉得它的紧凑性在 Web 应用程序的进程中运行“后台”逻辑可能会使整个解决方案更易于理解。
【问题讨论】: