2012-01-10 151 views
2

我有一个建立一个小工具的需求,它启动一个sql查询来获取用户电子邮件地址列表并发送电子邮件给计划每天执行的邮件。在C#中执行计划任务

我想知道什么可能是在.NET

我的工作在VS2010的溢价,才能执行此C#4.0

+1

最好的办法是使用SQL代理直接在数据库服务器上安排任务(我假设这里有一个MS堆栈和SQL Server)。 – Yuck 2012-01-10 16:44:08

+0

对于电子邮件看看使用SMTP System.Net.Mail查询看看创建一个存储过程,您的服务工作,对于实际的Windows服务..你可以通过.dll或控制台应用程序来做到这一点。您的应用程序中将包含3个基本组件。如果你这样做的.EXE看看System.Diagnostics和Process和ProcessInfo类..如果你的数据库处理电子邮件/发送电子邮件,你可以通过创建一些数据库脚本一次完成所有这些,包等。 – MethodMan 2012-01-10 16:45:04

回答

2

的好办法那要看你的需求。

我想你可以创建一个封装这个行为,你可以使用Windows计划任务

2

您应该使用task scheduler安排任务控制台应用程序,并让它运行你的程序,每天一次。

另一种方法可能是编写一项服务,等待一天中的某个时间并执行这个简单的任务,但这似乎有点过于霸道,除非您将来有更多此服务的计划。 (因此,例如,您希望服务能够发送电子邮件,执行一些数据库维护,在某个端口上侦听等)

让应用程序在后台全时运行以执行如此简单的任务't 似乎就像是一个很好的方法去做。停止应用程序的方式太多了。

1

.net对于这一点将会很好。我建议编写一个控制台应用程序来执行您所需的操作,并使用Windows Task Scheduler以您选择的时间间隔运行您的应用程序。

2

用任何你想要的语言或平台编写应用程序,然后使用Windows Task Scheduler使应用程序按照你的时间表运行。通过这种方式,您可以将您的应用程序专注于其核心内容(获取内容,发送电子邮件),并让Microsoft担心创建稳健计划服务的细节。

1

你需要把它写在.net中?

如果是,那么就像已经建议的那样去执行任务计划程序。如果不是,那么你也可以直接在数据库中创建一个作业。

0

如果您想在Web环境(ASP.Net)中执行此电子邮件过程,您可以使用ATrigger调度服务。 A .Net library也可用于创建计划任务而不会产生开销。

声明:我是他们的团队之一。