C#中的例行数据库作业的预定任务或服务?

时间:2009-05-27 08:38:02

标签: c# sql-server clr scheduled-tasks

我有一个Web服务器和一个数据库服务器,我想运行一个使用现有C#DLL访问数据库并执行一些计算的作业。

最简单的方法是在C#中创建一个控制台应用程序并在Web服务器(app server)上安排它来运行数据库服务器吗?

我认为SSIS是一个选项,但我不太了解,所以我认为安排作为任务的控制台应用程序是最好的。

你怎么看?

5 个答案:

答案 0 :(得分:1)

我是控制台应用程序+计划任务方法的忠实粉丝。它往往更清洁,更容易测试,并且如果出现问题则更容易重新运行。也就是说,如果您可以在纯SQL中编写计算,则可以将所有内容作为SQL作业运行。或者,您可以利用SQLCLR(生活在SQL Server中的.NET程序集,基本上显示为sproc或UDF),并且还可以在SQL作业引擎中完全运行。

答案 1 :(得分:0)

如果作业很小,则无需为此编写单独的控制台应用程序。您可以单独编写页面并编写批处理文件,即调度程序,以便安排它。您还可以通过窗口的用户界面安排它。除此之外,如果您的工作是维护计划的计划/步骤(如重新编制索引,备份数据库,进行碎片整理,清理历史记录/日志等),请在“管理”下的“sql server”中为其创建维护计划。 “文件夹可用。

答案 2 :(得分:0)

您还可以从PowerShell脚本调用C#DLL,并将该脚本作为计划任务执行。

对于需要在后台立即执行操作的操作,我更喜欢为每个项目提供服务。

答案 3 :(得分:0)

您可以使用Quartz.NET库(quartznet.sourceforge.net)在您的控制台应用程序中进行调度,它是开源的,并且完美运行!

答案 4 :(得分:0)

是的,最简单的解决方案是创建一个单独的控制台应用程序并将其作为计划任务运行。

您可以访问Web服务器,所有工具都已就位,无需安装任何其他工具。