我问是因为我公司即将开始使用的软件需要一个(Windows)工作站每晚运行一个小型自动化程序来增加数据库中的几个字段。我敢肯定我不是唯一一个认为这是糟糕的设计的人,但目前我对此无能为力(至少在我有时间弄清楚它到底在做什么并用 cron 替换它之前) -able perl 脚本)。
过去,我与 Windows 任务调度程序向导的唯一交易是几年前的杂项家庭任务。我记得有些任务根本没有执行,或者有些任务只是间歇性地运行。
假设任务配置正确,我可以相信 Windows XP 任务调度程序始终运行此作业还是不可靠?
我们有几个“关键”系统,我们的供应商选择依赖 Windows 任务管理器。我见过的唯一问题是;机器关闭时错过运行时间(它不是作业队列),任务失败只是因为它们设置不正确,每次任务管理器调用它时可执行文件或脚本本身都会失败,最大的问题是用户为特定任务设置的帐户由于多种原因而被锁定。
为了防止帐户锁定问题,我建议为该任务创建一个特殊帐户或我发现的一个小技巧,如果该任务不需要网络访问,您可以将其安排为使用空白密码作为系统运行。
最后,我们自动或手动监控所有关键任务。以防万一。
您提到此任务是针对数据库的。该数据库是 Microsoft SQL Server 吗?如果是这样,您将需要考虑使用SQL Server Agent。
我会说调度程序本身作为它运行的操作系统是可靠的。
大多数情况下,我处理的是 Server 2000 和 2003 而不是 XP 上的任务调度程序,但我不记得与实际调度程序故障相关的任务的调度任务失败。
如果这是该软件的推荐配置,我相信供应商必须对 XP 任务调度程序有信心。
很难说任何关于计算机的“总是”,但我在使用 XP 任务计划程序(和 Windows Server 等效程序)时通常运气不错。XP,作为 NT 衍生的操作系统之一,对我来说通常相当稳定。
我会试一试的。
这取决于任务的稳定性。我已经让它运行日常工作,以一种或另一种方式干净地结束,运行多年没有问题。但是我也看到了由于脚本挂起而导致工作没有结束的情况。虽然可以为每个任务配置“在 X 时间后终止”,但我已经看到失败了。
我还看到了失败的情况,即当作业超过时间运行以进行下一次执行时,任务计划定期运行。按照同样的思路,我每 5 分钟运行一次脚本,用于查询我们的 DNS 服务器。查询在大约 20-30 秒内完成,我们从未见过这些脚本在通过任务计划程序运行时失败。
我倾向于回答“是”,但前提是您可以确定机器将在指定时间运行。如果机器因任何原因停机,则在机器重新启动时将不会运行计划任务。即调度程序不会查看是否错过了任何调度。
如果任务运行至关重要,请确保 PC 至少已插入 UPS。
我很幸运调度程序本身可以正常运行,尽管我已经看到由于权限问题等原因而没有任何明确指示的任务失败。
我建议在实际运行任务的脚本中构建一些调试或通知代码。这样,您可以在脚本是新的时被动地监控它,并在您对其可靠性的信心增加时偶尔对其进行监控。
我从来没有遇到过任务调度程序的问题,但是如果工作站关闭,应用程序将不会运行(显然)。
如果您正在执行数据库级别的任务,大多数 RDBMS 将允许您安排查询/任务在 DBMS 级别运行,以消除对第三方任务的依赖。如果可行,这可能是一种更安全的方法(同样适用于运行 cron 作业)。
几个月前,我在网上四处寻找这类问题,我四处搜寻对你的问题给出了明确的“不”。