2009-05-27 55 views
1

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

是在C#中创建控制台应用程序并将其安排在Web服务器(应用程序服务器)上以针对数据库服务器运行的最简单方法?

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

您认为如何?

回答

0

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

0

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

对于需要在后台立即采取行动的操作,我更愿意为我的每个项目提供服务。

0

您可以使用Quartz.NET库(quartznet.sourceforge.net)在您的控制台应用程序中进行调度,它是开源的,它的工作原理非常完美!

0

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

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

1

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

+0

我喜欢SQLCLR方法,因为它使数据库机器上的所有东西都保持隔离...... – 2009-06-08 22:16:10