Zeta Scheduler
一个应用程序,可帮助您在预定义的时间和各种依赖关系下启动任务。

引言
Zeta Scheduler (ZS) 是一个应用程序,可帮助您在预定义的时间和各种依赖关系下启动任务。与 Windows 任务计划程序 不同,ZS 具有更多/其他功能,使其更加灵活,提供了其他地方无法获得的功能。
历史
在一位客户发现无法找到一个现代化的工具来替代一个名为“Norton Scheduler”(该工具可追溯到 20 世纪 90 年代中期)的工具后,我们开始为该客户开发 ZS。我们发现市场上没有其他工具能够满足 Norton Scheduler 的功能以及我们客户的新需求。
因此,我们与客户一起开发了 ZS。
工具的当前状态
目前,Zeta Scheduler 正在进行公开 Beta 测试。
这意味着
- 您可以免费使用它。
- 安装过程要求您执行手动步骤。
- 文档内容有限。
- 可能仍然存在 bug。
- 某些功能仍缺失。
概述
ZS 由两个应用程序组成:一个名为Zeta Scheduler Manager (ZSM) 的应用程序,以及一个名为Zeta Scheduler Scheduler (ZSS) 的应用程序。
ZSS 是一个控制台应用程序,运行在您想要运行计划任务的每台计算机上。ZSM 是一个 Windows GUI 应用程序,运行在一台计算机上,用于管理所有运行 ZSS 的计算机。
此外,所有 ZSS 和 ZSM 实例都访问一个中央 Microsoft SQL Server 数据库,用于读取和写入配置设置。
特点
计划模式
ZS 允许定义可以根据日期/时间设置或根据彼此依赖的任务。支持以下模式
- 在给定日期运行一次。
- 在给定日期每年运行一次。
- 在可配置的日期按可配置的时间每月运行一次。
- 在给定日期每周或每天按给定的时间运行。
- 每n小时运行一次。
- 在可变日期/时间运行。这是一种高度可配置的模式,您可以独立设置星期几、月份中的几天以及多个小时和分钟。
- 系统启动时运行,在计算机启动n分钟后运行。
- 依赖于另一个任务运行。此模式允许链接多个任务,从而仅在先前任务成功或失败时启动某个任务。
此外,您可以配置一个任务不在公共假期运行(公共假期也可配置)。
Notifications
每个任务都可以配置为在成功完成和/或错误完成时生成通知。通知可以发送到以下任何目标
- 通过电子邮件发送给一个或多个接收者
- 日志文件
- 数据库表 (例如,使用第三方工具稍后评估)
- 窗口事件日志
每个通知都可以配置为同时发送到多个目标,并带有可配置的通知文本。
作业
“作业”的概念包含了实际要计划的任务的所有定义。一个作业包含在一个全局的作业存储库中,允许轻松地将一个作业分配给多个任务(可选地在不同的计算机上),从而简化任务的创建和分配。
作业包含以下主要设置
- 名称和类别 - 帮助分类和快速查找作业。
- 程序文件、命令行、启动文件夹 - 要执行的应用程序/脚本的核心定义。
- 结果范围 - 指定您认为“成功”和“失败”的退出代码。
- 用户登录信息 - 以其他用户身份运行进程。
计算机
“计算机”标识一台运行 ZSS 应用程序的机器。在中央 ZSM 管理应用程序中,您可以创建任意数量的计算机并为其分配任务。
计算机的设置包含
- IP 地址或主机名
- 一个友好的名称
- 描述
- 一个激活/停用所有任务的标志
占位符
对于大多数设置(如作业定义或通知设置),您可以使用占位符,这些占位符在运行时展开。这使您能够最大限度地减少硬编码信息,使应用程序能够轻松地移植到其他系统。
一些示例占位符(超过 70 个占位符)包括
- 环境信息,如计算机名、环境变量、操作系统版本、IP 地址
- 全局信息,如当前日期或时间
- 路径信息,如当前 ZSS 文件和文件夹路径
- 任务信息,如名称或上次结果
- 作业信息,如 ID 或用户名
各种其他功能
- 过去运行过的任务的详细结果历史记录。历史记录存储在数据库中,以便您可以使用第三方工具进一步处理结果。
- 用于轻松使用的功能区 UI。
- 来自友好支持工程师的绝佳、快速、响应迅速的支持。
安装
前言
本节假定您熟悉
- Microsoft Windows Server 2003/2008 操作系统基本管理
- Microsoft .NET Framework 4.0 管理
- Microsoft SQL Server 2005/2008 管理
要求
要成功设置 ZSM 和 ZSS 组件,您需要以下先决条件
- Microsoft Windows Server 2003/2008, Microsoft Windows XP, Microsoft Windows Vista 或 Microsoft Windows 7
- Microsoft .NET Framework 4.0
- Microsoft SQL Server 2005/2008
设置组件包包括
- 包含服务器组件的 ZIP 存档,包含一个完整的 ASP.NET 应用程序(包含 ASPX 文件、DLL、配置文件等)
- Zeta Scheduler 数据库的 SQL Server 数据库备份,包含结构但无数据。
- 本文档。
步骤
下载并运行部署设置
首先,下载部署设置并运行它。部署设置会将所有必需文件带到您的本地计算机(默认情况下在桌面),但不会实际安装任何组件。在 Beta 阶段必须手动完成此操作。
运行部署设置后,您将在安装文件夹(默认:“C:\Users\YourLogInName\Desktop\Zeta Scheduler”)中找到以下子文件夹
- “Manager” - ZSM 应用程序的可执行文件
- “Scheduler” - ZSS 应用程序的可执行文件
- “Database” - Microsoft SQL Server 2005/2008 脚本,用于创建 ZS 数据库的对象
安装数据库
要安装数据库,请按照以下步骤操作
- 选择一个 Microsoft SQL 实例,该实例可由您计划安装 ZSM 应用程序的计算机以及将运行 ZSS 应用程序的所有计算机访问。
- 在 Microsoft SQL Server Management Studio 中,创建一个新的数据库“
ZetaScheduler
”。 - 接下来,在部署设置提供的“Database”文件夹中打开并运行脚本“ZetaScheduler.sql”。
您已成功配置数据库结构。请确保将新数据库添加到您的维护计划中,以确保其得到备份。
配置 ZSM 管理应用程序
ZSM 管理应用程序是您配置和管理所有 ZSS 实例的中央 GUI。要安装,请执行以下步骤
- 将部署设置中的“Manager”文件夹内容移动到适当的位置,例如“C:\Program Files\Zeta Scheduler Manager”。
- 使用(XML)文本编辑器打开“zsm.exe.config”配置文件(例如记事本或其他文本编辑器,如“Notepad++” - 但不要使用 Wordpad 或 Microsoft Office Word,因为内容将无法使用)。
- 调整连接字符串以指向您先前安装的 Microsoft SQL Server 实例。
- 可以选择调整“zsm.logging.config”文件,该文件定义了内部日志记录应如何执行/是否执行。有关可用日志记录配置设置的完整列表,请参阅 log4net 网站。
在第 4 项中要调整的默认连接字符串如下所示
connectionString="data source=EnterYourDBServerHere; initial catalog=EnterYourDatabaseHere; Integrated Security=False; User ID=EnterYourUserIDHere; Password=EnterYourPasswordHere"
如果您不确定如何确切地形成连接字符串,您可能想访问 ConnectionString.com 网站,其中包含各种示例。
部署 ZSS Scheduler 应用程序
对于您希望使用 ZS 计划任务的每台计算机,您都需要复制和配置 ZSS 可执行文件的实例
- 将部署设置中的“Scheduler”文件夹内容复制到适当的位置,例如“C:\Program Files\Zeta Scheduler”。
- 使用(XML)文本编辑器打开“zss.exe.config”配置文件。
- 调整连接字符串以指向您先前安装的 Microsoft SQL Server 实例。
- 可以选择调整“zss.logging.config”文件,该文件定义了内部日志记录应如何执行/是否执行。
- 在 Windows 内置的任务计划程序中创建一个指向“zss.exe”的条目,并将其配置为“系统启动时运行”。这确保了核心计划引擎始终存在。(我们将在未来的版本中将其替换为实际的 Windows 服务。)
为要使用 ZS 执行任务的每台计算机重复步骤 1. 至 5.。
故障排除
如果在安装过程中遇到错误,请检查以下项目
- 检查 Windows 事件日志以获取详细的错误消息。
- 检查 ZS 组件写入的日志文件。
- 访问官方支持区域并寻求进一步帮助,或直接在本文章末尾的评论部分发布您的问题。
配置
成功安装数据库、ZSM 和 ZSS 实例后,您将获得一个空的安装,需要进行配置才能实际运行。
本章将介绍如何操作。
ZSM 主窗口
ZSM 管理应用程序的主窗口顶部有一个功能区菜单。使用功能区菜单项执行各种操作。
功能区区域下方是主树列表,显示所有计算机、任务和子任务。从左到右的列显示了任务的状态和其他有用值的信息。
在主树列表的每个节点的左侧,会显示一个彩色方块图标,该图标以易于记忆的交通灯颜色范围显示元素及其所有子元素累积的状态
- 灰色图标 - 计算机/任务没有任何结果(即没有任务或从未运行过的任务)。
- 红色图标 - 该元素(或子元素)运行并以被解释为“失败”的退出代码退出。只要有一个子元素为红色,该元素就为红色,即使其他子元素为绿色。
- 绿色图标 - 该元素(及其所有子元素,如果有)运行并以被解释为“成功”的退出代码退出。
- 黄色图标 - 存在一些为绿色的一些为灰色的子元素。
创建计算机
为每台运行 ZSS 实例的计算机创建一个新的根元素“计算机”。
- 在主功能区上,单击“添加计算机”。
- 输入计算机的主机名或 IP 地址。
- 给计算机一个有意义的名称,例如主机名。
- 您可以选择性地输入备注,以方便您自己使用。
定义作业
作业是实际任务的构建块。定义一个或多个作业,以便稍后在定义任务时使用它们。每个作业可以被多个任务使用。
- 在主功能区上单击“作业”。
- 将打开作业窗口。单击“新建”按钮添加一个新作业。
- 输入作业的名称,以便以后识别。
- 输入程序的完整路径以启动程序。使用占位符使其可在多台计算机上使用,即使配置略有不同。例如,输入“$(SpecialFolder.System)\notepad.exe”来指向 Windows 记事本应用程序。
- 可选地指定参数和启动文件夹路径。
- 告知 ZS 将程序的哪些退出代码解释为“成功”,哪些解释为“失败”。通常,此信息取决于您实际计划运行的程序,并由程序的说明提供。请向其供应商询问更多详细信息。
- 可选地配置一个用户(用户名、密码、域)来启动程序。如果您省略此信息,程序将以 ZSS 应用程序运行的用户上下文启动。
重复这些步骤以添加所有必需的作业。当然,您也可以稍后根据需要定义作业。
定义通知
通知使您能够配置任务的成功/错误退出是否/如何通知。您在全局存储库中定义通知,并在稍后将其分配给实际要运行的任务。
定义通知
- 在主功能区上,单击“通知”。
- 将打开通知窗口。单击“新建”按钮添加一个新通知。
- 输入通知的名称,以便以后识别。
- 配置哪些通知将发送到哪些目的地。
- 配置将发送的通知文本。
配置全局通知设置
- 在主功能区上,单击“通知”。
- 将打开通知窗口。单击“设置”选项卡以显示所有可用的通知配置。
- 输入电子邮件(SMTP)服务器设置和日志文件设置。
请注意,通知设置将用于运行 ZSS 应用程序的所有计算机。这意味着,例如,在配置 SMTP 服务器时,您必须确保所有计算机都可以通过该服务器发送电子邮件。
定义任务
定义了作为任务基础的作业后,您可以开始添加任务。
由于任务可以同时添加到计算机作为根任务以及添加到其他任务作为子任务,因此选择主窗口树列表中的哪个元素很重要。
向计算机添加根任务
要向计算机添加根任务,请执行以下步骤
- 通过左键单击来选择主窗口中的计算机。
- 在主功能区上单击“添加任务”。
- 给任务起一个名称,以便以后识别。
- 从列表中选择一个预定义的作业。该作业将根据您在任务中配置的条件执行。如果您想添加一个新作业,请单击“作业”按钮。
- 单击“计划时间”选项卡。
- 输入/选择任务的计划时间。
- 可选地,单击“保存并重新计算”按钮以验证任务将实际执行的计划日期。
- 单击“其他设置”选项卡。
- 可选地配置将在程序运行成功或错误退出时发送的通知。
对要添加的所有根任务重复以上步骤。
向任务添加子任务
要向现有任务添加子任务,请执行以下步骤
- 通过左键单击来选择主窗口中的任务。
- 在主功能区上,单击“添加任务”。
- 给任务起一个名称,以便以后识别。
- 从列表中选择一个预定义的作业。该作业将根据您在任务中配置的条件执行。如果您想添加一个新作业,请单击“作业”按钮。
- 单击“计划时间”选项卡。对于子任务,只有一个选项“依赖”可用。
- 配置计划时间。
- 可选地,单击“保存并重新计算”按钮以验证任务将实际执行的计划日期。
- 单击“其他设置”选项卡。
- 可选地配置将在程序运行成功或错误退出时发送的通知。
对要添加的所有子任务重复以上步骤。请注意,您可以无限嵌套任务。
编译源代码
为了自行编译和运行提供的源代码,必须满足以下要求
- Microsoft Visual Studio .NET 2008
- DevExpress DXperience WinForms 组件
您还需要设置和配置数据库,并按照“设置”部分中的说明调整 ZSM 和 ZSS 配置文件。
使用的 Zeta Enterprise Library 也在一个单独的 文章 中提供。
结语
在本篇文章中,我介绍了一个 Windows 任务计划程序的替代/扩展。
投票时,请注意我将文章放在了“实用工具”部分,因此我认为在文章本身不包含源代码解释是安全的。谢谢。
源代码大小/位置
关于源代码的最后一点:由于源代码大约为 30 MB,我决定将其放在外部服务器上,因为它超出了 CodeProject.com 的允许大小限制。
大小大的原因是下载包含 DLL,以便 Visual Studio 解决方案能够成功编译。
所以我的决定是优先选择可编译的代码而不是大小。如果您有不同意见,请评论,我将提供替代的源代码下载。
历史
- 2011-12-22 - 维护版本,已更新到最新的源代码和 DevExpress 组件。
- 2010-07-10 - 添加了缺少的 SQL 脚本,迁移到 .NET 4.0,迁移到 Office 2010 功能区 UI 样式。
- 2010-04-14 - 维护版本,已更新到最新的 DevExpress 组件。
- 2009-11-18 - 小幅修复。
- 2009-11-16 - 首次在 CodeProject.com 发布。