虽然没有什么错误使用任务计划程序,它本身就是,一个服务。但是,在我工作的地方我们有相同的要求,而且我们有通用的计划来完成其中的几项工作。我解释你的帖子,说你会为每个任务运行单独的服务,我会考虑编写一个单一的数据库驱动(服务)程序来完成你所有的任务,这样,当你添加一个新的任务时,它只是一个简单的数据录入杂事,而不是一个全新的编程程序。如果您练习变更控制,这种差异可能会很大。如果你有更多的任务,这些努力可能是可以接受的。这种方法还可以让您制定出最适合您业务的记录机制。
这是我们的质量要求为我们的任务计划文件的一部分,给你从哪里开始的想法:
这个程序需要将数据库驱动。
它需要作为Windows服务运行。
程序需要能够通过以下方式来处理“工作”:
乔布斯需要根据存在或不能够检查源文件是否存在,并采取行动的源文件。 (即继续进行处理,vs报告文件不存在与忽略它,因为文件不在那里并不重要。
乔布斯需要能够将文件从源复制到目标位置或
复制源中的文件,到分段位置,进行“处理”,然后复制任何原始文件或“处理”到目标位置的结果或
将文件从源复制到暂存位置,执行“处理”,并且处理是最终结果。
的来源和作业可能复制和可目的地不同:UNC,SFTP,FTP等
的“处理”,就可以了,加密/解密文件,解析数据文件格式正确,通过终端仿真等将文件送入大型机,通常通过调用命令行将参数传递给.exe来执行.exe需要根据需要自行清理。即删除中间或原始文件,将文件复制到归档位置等。
该程序需要能够确定作业的每个阶段的成功和失败,并采取适当的操作,这将是日志记录,并可能其他通知时,中止失败进一步处理,等等
作业需要被配置在特定的设定的时间,可以激活,或者在一定的时间间隔(任选地在特定组小时)即,从9:00每15分钟 - 5: 00。
需要有一个UI才能添加新的作业。
需要有一个按钮来触发一个工作,就好像一个计时器事件已经激活它一样。
程序的标准显示应该显示操作员正在进行的操作以及程序是否运行正常。
所有这一切的前提是它是给定您编写自己的软件的前提。市场上还有几种企业任务调度程序。现成购买可能是更好的解决方案。
感谢所有的建议。很多好主意。 – user177213 2009-09-24 12:03:22
听起来对我来说,SQL Server Integration Services可能非常适合您提到的需求,并且有一些自定义ScriptTasks用于未开箱即用的操作。如果您已经为这些任务实施了.exe(如您所述),那么您可以在SSIS框架内使用它们。可以按需或按计划使用SQL Server作业管理部署。 – 2013-09-23 14:05:52
当然,这是基于您已经使用SQL Server的假设 - 我不知道其他供应商提供了哪些替代方案... – 2013-09-23 14:06:30