Skip to content

分布式任务调度

计划任务是指按预定时间定时运行或周期性运行的程序,最常见的就是 Linux 的 crontab 和 Windows 的“计划任务”。在企业级应用场景中,随着业务规模的扩大和系统架构的分布式演进,传统的单机计划任务已无法满足需求。分布式定时任务将分散、可靠性低的计划任务纳入统一平台,实现集群管理调度和分布式部署,有效提升任务执行的可靠性、可观测性和可维护性。

HiMind 工业互联网平台集成了 Quartz.NET 任务调度框架,提供图形化管理界面,支持集群部署与分布式任务调度能力。Quartz.NET 是 .NET 生态下最成熟、应用最广泛的开源任务调度框架,是 Java Quartz 的 .NET 移植版本。它功能强大、配置灵活,支持秒级精度的任务触发,可嵌入到任何 .NET 应用程序中运行。

核心能力

1. 基础调度能力

  • 多种触发方式 :支持简单触发器(按固定间隔执行)和 Cron 触发器(按 Cron 表达式执行)

  • 任务持久化 :支持将任务和触发器信息存储到数据库,应用重启后任务不丢失

  • 任务并发控制 :支持配置任务是否允许并发执行,避免资源竞争

  • 任务优先级 :支持为任务设置优先级,高优先级任务优先执行

2. 分布式集群支持

  • 集群部署 :支持多节点集群部署,同一任务只在一个节点上执行,避免重复执行

  • 故障转移 :当集群中某个节点宕机时,该节点上的待执行任务会自动转移到其他正常节点

  • 负载均衡 :任务在集群节点间自动分配,充分利用服务器资源

  • 高可用 :集群模式下无单点故障,任意节点故障不影响整体调度能力

3. 图形化管理

平台提供了可视化的任务管理界面,支持以下功能:

  • 任务管理 :支持任务的创建、编辑、暂停、恢复、删除等操作

  • 触发器管理 :支持触发器的增删改查,可动态调整执行周期

  • 执行日志 :记录每次任务执行的开始时间、结束时间、执行结果、异常信息等

  • 手动触发 :支持手动执行指定任务,便于功能验证和异常处理

  • Job 类管理 :支持查看已注册的 Job 类列表,简化任务配置

4. 扩展能力

  • AdoJobStore :支持将任务存储到 SQL Server、MySQL、PostgreSQL、Oracle 等多种数据库

  • 自定义监听器 :支持任务监听器和触发器监听器,可定制执行前后的业务处理

  • Job 数据透传 :支持在触发任务时传递自定义参数,任务执行时可获取

  • 失火处理 :支持配置任务错过执行时间后的补偿策略(立即执行、忽略等)

任务管理界面功能

功能模块说明
任务列表展示所有已注册任务,支持按名称、Job 分组进行筛选
任务详情查看任务的执行参数、触发规则、历史执行记录等信息
执行日志展示历史执行记录,包括执行耗时、执行结果、异常堆栈等
实时日志支持查看任务执行的实时输出日志,便于问题排查
监控告警支持配置任务执行超时告警、执行失败告警等

典型应用场景

场景说明
数据同步定时将业务数据从 ERP 同步到 HMX 平台
报表生成每日凌晨生成前一天的经营报表并推送至相关人员
数据备份定期备份业务数据到指定存储位置
缓存刷新定时刷新系统中的缓存数据,保证数据时效性
消息推送定时发送待办提醒、预警通知等消息
订单超时处理扫描超时未支付的订单,自动取消并释放库存

设计优势

  • 成熟稳定Quartz.NET 历经十余年发展,在 .NET 社区拥有广泛的应用基础

  • 集群高可用 :支持分布式集群部署,保障任务调度的可靠性

  • 可视化运维 :图形化管理界面,降低任务配置与运维门槛

  • 灵活扩展 :支持自定义 Job 类、监听器,满足业务个性化需求

  • 与平台无缝集成 :任务管理模块与 HMX 后台管理一体化,无需额外部署独立任务中心

HiMind 工业互联网平台 技术文档