2010-06-28 33 views
1

我正在创建一个系统,用户可以设置邮件在特定时间外出。在我之前我想得到一些建议。首先,是否有一个.Net组件可以处理调度作业(运行另一个应用程序或调用一个URL),它将按我的建议进行操作(Open Source会很酷)?如果没有,最好是在SQL中安排作业并运行某种脚本,创建一个.Net服务,它将查看xml文件或数据库以查看日程安排,或让应用程序创建计划任务?可能会有很多任务,所以我想创建计划任务或SQL作业可能不是一个好主意。 这里可能是一个典型的场景;用户想要发送简讯给他们的客户。用户在周六创建新闻简报,但不希望到周一才发布。用户希望每个星期一发送相同的电子邮件一个月。 感谢您的期待!调度任务建议? .Net,SQL Job?

回答

1

退房Quartz.NET

Quartz.NET是一个全功能的,开放 源作业调度系统,可以 从最小的应用程序用于大型 规模的企业系统。

1

如果您想使用Windows本身的随时可用的服务,请查看这篇文章A New Task Scheduler Task Library CodeProject上关于如何从C#应用程序在Windows中创建scheuled任务。

如果您在Windows中使用C#和计划任务,您可能会拥有更多的灵活性和强大功能,而不是仅限于SQL Server中可以完成的工作。 SQL Server代理作业非常棒 - 对于数据库特定的东西,主要是维护计划等等。

1

您可以构建自己的Windows服务来安排和执行作业。一定要做出好的抽象。在一个类似的项目中,我使用了一个抽象,其中调度项目被抽象为由任务组成的作业。例如,发送简报可能是一项工作,而向每位订阅者发送简报可被视为一项任务。然后,您需要在定义的线程模型中运行作业和任务,最好使用线程池线程或任务并行库。尽可能确保为IO使用异步API。也将您的调度逻辑与抽象分开。以便调度逻辑可以执行任意类型的作业及其包含的任务。