【发布时间】:2012-10-18 22:29:08
【问题描述】:
我正在开发一个有两个要求的新建项目。
- 在云 (Azure) 中运行。
- 在自托管的 Windows Server 安装上运行。
这个项目分为三个主要部分。
- 客户端集合。
- 一个 RESTful 服务器。
- 持久存储。
对于这个问题,客户端无关紧要,RESTful 服务器是使用 ASP.NET WebApi 构建的(满足上述要求),如果是云,持久存储是 Azure Tables,或者自托管时是 RavenDb。那么问题来了。
在此架构中满足上述两个要求的调度作业的最佳机制是什么。
我有一个作业的概念,它通过查询 RESTful 服务器并要求它对任何活动作业进行预定时间检查来运行,因此该服务实际上只需要进行一个非常简单的休息查询即可启动该过程。
所有作业和运行它们的逻辑(它们是模板)都在服务器上,因此服务不需要逻辑。
最终,最好的响应是某种自动收报机服务,要求该服务执行检查。如果我可以将它直接构建到 ASP.NET WebApi 服务器中,我会更开心。这是一项新技术,因此请原谅我可能遗漏的任何明显的疏忽,以解决这个问题。
【问题讨论】:
-
你看过 Quartz.net (quartz-scheduler.net) 的调度任务吗?
-
我还没有专门研究特定的库,因为我不确定从架构的角度来看我需要什么。我也对为我需要的内容添加 lib 依赖项持谨慎态度,这本质上是某种运行请求的代码。
-
Quartz 稳定且有大量追随者 - 但这意味着您需要自己实现所有内容。
标签: .net architecture azure self-hosting