关于开发中使用的调度服务实现方式,对比曾经用过的方式。因为体系、框架、管理等因素,考虑使用XxlJob作为调度中心统一管理调度服务
实现方式 | 对比 | 说明 |
TaskScheduler | 优点: 调度部分可视化配置,但须提供业务入口程序(常用触发程序自动更新) 缺点: 单机配置使用 不透明不可编程介入 | Windows系统自带 |
WindowsService+Timer/Quartz | 优点: 可以简化到只要一个Timer触发任务也可使用调度服务,注册WindowsService驻留系统 WindowsService注册推荐WinSW工具+Bat脚本简单易用 缺点: 单机配置使用,根据调度组件复杂程度有一定编程量 更新程序麻烦,容易忘记或混乱 | 服务器需要Windows系统 |
IHostServcie+Timer/QuartzNet | 跟随netcore程序托管 优点: 相对于WindowsService程序集中在同一个项目,其他同上 缺点: 每个项目需要实现一遍,不能统一管理调度任务 微服务或分布式架构要拆出一个单独调度服务 | .netcore平台 |
XxlJob+executor(WebApi) | XxlJob SpringBoot实现 优点: 官网上很多,可以统一管理多个项目的调度任务 自带Admin界面可视化统计、日志 缺点: 系统复杂程度上升 对netcore的executor支持度低更适合java体系使用 | XxlJob Java平台 Executor可使用.netcore平台 |
开发用的netcore,调度用java,有一定跨语言、版本、兼容问题一言难尽