【问题标题】:Using Windows PowerShell as a batch scheduler使用 Windows PowerShell 作为批处理调度程序
【发布时间】:2010-09-28 19:56:44
【问题描述】:
我们有一系列作为 Windows 计划任务运行的夜间批处理作业。他们的数量已经增长到他们开始互相踩踏的程度,因为批处理文件之间没有依赖关系,只是开始时间。我们正在考虑使用 PowerShell 来编写脚本来控制每晚的循环……任何人都可以确认我们做出了正确的选择。有没有更好的方法来创建夜间批处理作业调度程序(除了购买产品)或者 PowerShell 是此类任务的推荐方法。
感谢您的回复。
【问题讨论】:
标签:
powershell
windows-task-scheduler
【解决方案1】:
Powershell 将是一个合理的起点。您可以完全放弃 Windows 调度程序并将 Powershell 脚本作为服务运行(使用类似 SRVANY.EXE 的东西)。甚至可能有一种“原生”方式让 Powershell 作为服务运行。
您的作业定义、依赖关系、失败操作等可以以 XML 格式存储,Powershell 可以轻松读取。
我能看到的唯一问题是调度所需的准确性,即:它必须是第二个吗?
PowerShell 有一些漂亮的作业执行 cmdlet,请参阅 start-job、get-job 和 receive-job。
【解决方案2】:
我认为 PowerShell 对您的调度和依赖管理的具体问题没有多大帮助。但这对于实际工作可能是个好主意。
对于调度,也许您应该查看免费的构建管理工具,例如 CruiseControl 或 Luntbuild。此类工具旨在处理许多作业的调度和依赖性管理。