.Net长时间运行的预定代码执行

时间:2011-01-14 14:47:16

标签: .net deployment workflow long-running-processes

我正在开展几个项目,我真的希望有一些组件可以指定时间和日期,然后执行某种方法。

DateTime date = new DateTime(x,x,x,x,x,x);
ScheduledMethod sMethod = new ScheduledMethod(date, [method delegate of some sort]);

\\at the specified date, sMethod invokes [method delegate of some sort]

我知道我可以使用Windows Workflow Foundation作为一个长期运行的过程,这对某些事情有好处,但有没有其他选择?工作流程的细节并不完全直截了当,能够为轻量级任务部署更简单的东西会更好。一个示例是每天检查一次网络文件夹并删除超过30天的任何文件的方法。我意识到这可能是梦想中的天空,但这对于自动执行某些平凡的maintinence任务(预定的sql操作,文件系统清理,例行电子邮件发送等)非常有用。它不一定是.Net,但这就是我来自的地方。有什么想法吗?

4 个答案:

答案 0 :(得分:3)

尝试Windows任务调度程序。在C#中编写一个执行所需任务的程序,然后在任务调度程序中安排它以指定的时间间隔运行。对于像删除文件夹中的文件这样的事情非常有用。

答案 1 :(得分:3)

您可以部署Windows ServiceWindows Scheduled Task

另请参阅this SO问题。

答案 2 :(得分:2)

我通常为该任务创建一个控制台应用程序,并将其配置为Windows中的计划任务。这通常很好。为应用程序添加一些不错的日志记录,以便在出现任何问题时以简单的方式进行故障排除。

答案 3 :(得分:1)

Microsoft为非托管代码http://msdn.microsoft.com/en-us/library/aa383614(v=VS.85).aspx提供了Task Scheduler接口。但是,如果您需要托管库,则可以使用Microsoft Task Scheduler http://www.codeproject.com/KB/cs/tsnewlib.aspx的包装器或.NET QuartzNet的企业作业调度程序。