在.NET 3.5中创建一个长时间运行的夜间任务,以便在Windows Server 2008上使用

时间:2009-12-01 20:48:48

标签: .net windows-server-2008 scheduled-tasks

我有一个需要在Window Server 2008上每晚运行的长时间运行,计算和磁盘密集型任务;我的选择框架是.NET 3.5 sp1。由于各种原因(即磁盘空间不足),这项任务有可能失败,我希望确保错误得到解决。报道合理。此外,此任务需要权限来执行诸如创建数据库连接和读/写文件系统之类的操作。有什么选择可以让这样的事情完成?

编辑:我的问题更多的是关于是否使用Windows计划或其他一些机制来启动流程。

5 个答案:

答案 0 :(得分:2)

创建控制台应用程序。在main()方法中,放置一个try-catch,并使用SmtpClient发送有关未处理异常的通知。编译它并添加一个条目以使用Scheduled Task小程序运行它。

答案 1 :(得分:1)

这听起来像是一个标准的控制台应用程序需要在预定的计划(Windows计划任务)上运行,并且需要简单的日志记录/报告和通信功能,并且可能需要一些linq2sql来进行db crud操作。

坦率地说,在这一点上,听起来你的选择是敞开的。

答案 2 :(得分:1)

两个字......异常处理

另一个词......记录

除了这里其他人提供的所有其他非常合理的建议之外,如果这是一个长时间运行无人值守的过程,我会特别注意你如何处理异常以及如何记录/报告它们以便你知道是否出了什么问题并且有足够的信息来纠正这个问题。

答案 3 :(得分:0)

您有更具体的问题吗?所有这一切都是可行的。 您可以捕获并记录日志文件中的异常,并使用SMTP邮寄这些结果。 您还可以建立一个非常简单的数据库连接。有一件事你有问题我们可以提供帮助吗?

您可以使用Windows计划程序将此应用程序设置为在特定时间或持续时间运行的作业等。

答案 4 :(得分:0)

编码....问题是什么? 创建一个良好的可靠代码来处理所有事情,您将完成任务。 你可以用它来制作一个服务,并且如果失败则要求windows重新启动,或者只是将它包装在一个带有try / catch的infinate循环中,但是要处理那些如果没有修复就不值得继续的东西....