调度任务建议? .Net,SQL Job?

时间:2010-06-28 19:06:55

标签: sql-server .net-3.5 scheduled-tasks

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

3 个答案:

答案 0 :(得分:1)

查看Quartz.NET

  

Quartz.NET功能齐全,开放   源作业调度系统即可   从最小的应用程序到大型应用程序   扩展企业系统。

答案 1 :(得分:1)

如果您想在Windows中使用现成的服务,请查看CodeProject上的这篇文章A New Task Scheduler Task Library,了解如何从C#应用程序在Windows中创建计划任务。

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

答案 2 :(得分:1)

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