- 完善的任务日志存储,支持 H2/Mysql/oracle/Postgresql/Elasticsearch
- 任务运行堆栈功能可详细记录任务运行过程,帮助管理员快速排查问题
- 报警与权限功能也极为重要,它提供任务事件监控报警,以及详细的报警历史记录
- 管理员可以使用企业微信、飞书、webhook等渠道接收报警信息。
- 命名空间方式设计,支持按钮级别权限管理,轻松应对复杂的项目管理。
- 支持多种编程语言,如 Java,Go,PHP 和 Python,各个语言的支持度都非常友好。
- 普通定时任务,支持Unix Crontab 表达式。
- 秒级定时任务,适用于对实时性要求比较高的业务,例如执行间隔为3秒的定时调度任务。
- 固定频率任务,Crontab 必须被 60 整除,不支持其它数量级时间间隔的任务,一般用于定期轮询场景。
- 基于 Redis 实现高性能延时任务,一体化解决定时任务和延时任务,同时提供丰富的报表与统计。
- 单机,随机选择一台机器完成任务执行。
- 广播,应用所有机器同时执行且等待全部结束。
- Map模型,类似于 Hadoop 的Map。只需简单实现一个Map方法,就可以将海量数据分布到多台机器上执行。
- MapReduce模型,MapReduce模型是Map模型的扩展。所有子任务执行完成后执行Reduce方法,可以在Reduce方法中处理任务运行结果和数据。
- 静态分片,类似Elastic-Job模型,控制台配置分片数,可以按照分片分配到不同的客户端执行,支持多语言版本。
- 普通执行器,普通函数或类的方式执行任务
- HTTP,定时请求固定的地址。
- Shell,定时执行 shell 脚本
- 任务仪表盘,丰富的任务统计和报表。
- 任务历史执行记录,任务执行历史追溯。
- 任务运行日志,完善的任务日志存储(H2/Mysql/Elasticsearch)
- 任务运行堆栈,详细记录任务运行堆栈信息。
- 提供任务事件监控报警,以及详细的报警历史,同时支持企业微信、飞书、webhook触达通知。
- 命名空间方式设计,支持按钮级别权限管理,轻松应对复杂的项目管理。
- Java 及其衍生框架,原生支持。
- Go 支持 go mod 方式安装依赖,以及常见框架整合(Gin)。
- PHP 支持通过 Golang agent 方式执行 PHP 任务。基于 Swoole 衍生框架(Swoft),支持 Composer 安装依赖直接使用。
- Python 支持通过 Golang agent,方式执行 Python 任务。
项目
|
Quartz
|
Elastic-Job
|
XXL-JOB
|
Openjob
|
定时调度
|
Cron
|
Cron
|
Cron
|
|
延时任务
|
不支持
|
不支持
|
不支持
|
基于 Redis 实现分布式高性能延时任务,实现定时与延时一体化
|
任务编排
|
不支持
|
不支持
|
不支持
|
通过图形化编排任务(workflow)
|
分布式计算
|
不支持
|
静态分片
|
广播
|
|
多语言
|
Java
|
|
|
|
可视化
|
无
|
弱
|
|
|
可运维
|
无
|
启用、禁用任务
|
|
|
报警监控
|
无
|
邮件
|
邮件
|
|
性能
|
每次调度通过DB抢锁,对DB压力大
|
ZooKeeper是性能瓶颈
|
由Master节点调度,Master节点压力大。
|
任务采用分片算法,每个节点都可以调度,无性能瓶颈,支持无限水平扩展,支持海量任务调度。
|
[root@openjob ~]$ java -jar openjob-agent-java-xxx.jar -h Usage: Openjob-agent-java [-hV] [-s=<serverAddress>] [--worker-app-name=<workerAppName>] [--worker-heartbeat-fail-times=<heartbeatFailTimes>] [--worker-heartbeat-interval=<heartbeatInterval>] [--worker-host=<workerHost>] [--worker-port=<workerPort>] -h, --help Show this help message and exit. -s, --server-address=<serverAddress> Server address, default is `http://localhost:8080` -V, --version Print version information and exit. --worker-app-name=<workerAppName> Application name, default is `openjob` --worker-heartbeat-fail-times=<heartbeatFailTimes> Worker heartbeat fail times, default is `2` --worker-heartbeat-interval=<heartbeatInterval> Worker heartbeat interval, default is `5` --worker-host=<workerHost> Worker host, default is local IP --worker-port=<workerPort> Worker port, default is `25588`
文章来源地址https://www.toymoban.com/news/detail-599134.html
- [#agent] 新增 Agent
- [#137] 客户端心跳异常退出
- [#137] unix 平台终止 Kettle
- [#139] 任务实例状态上报
- [#139] 延时实例状态上报
- 官网: https://openjob.io
- Github: https://github.com/open-job/openjob
- 在线体验: https://demo.openjob.io
- openjob
- openjob.io
- QQ交流群: 849015265
文章来源:https://www.toymoban.com/news/detail-599134.html
到了这里,关于Openjob 1.0.5 发布,新增 Agent的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!