介绍
Openjob一款全面的高性能任务调度框架,支持多种定时任务、延迟任务、工作流设计、轻量级计算、无限水平扩容,并具有无可比拟的可伸缩性和容错性,以及完善权限管理、强大的对称监控、原生支持多语言。
另外,有需要chatGPT和jb授权账号的小伙伴,可以点击「原文阅读」,去我网站购买,24h自动发货。
特性
高可靠
多种无状态设计,采用Master/Worker架构,支持多种数据库(MySQL/PostgreSQL/Oracle)
性能
底层采用一致性分片算法,全程无锁化设计,任务调度精确到秒级,支持水平轻量级计算、无限扩容。
定时
支持定时任务、固定频率任务、高性能秒级任务、间歇任务定时调度。
全局计算
单机、广播、Map、MapReduce和分片多种编程模型,轻松实现大数据计算支持。
延迟任务
基于Redis实现高性能延迟任务,底层实现任务多级存储,提供丰富的统计和报表。
工作流程
内置工作流调度引擎,支持可视化DAG设计,简单实现高效复杂任务调度。
权限管理
完善的用户管理,支持菜单、按钮以及数据权限设置,灵活管理用户权限
报警监控
全面的监控指标,丰富及时的报警方式,基于运维人员快速定位和解决线上问题。
跨语言
最初支持 Java/Go/PHP/Python 多语言,以及 Spring Boot、Gin、Swoft 等框架集成。
使用
Docker 拉取镜像
docker pull openjob/openjob-server:latest
运行容器
新增一个配置文件 .env,配置正确可用的数据库地址。
AKKA_REMOTE_HOSTNAME=LocalIP
OJ_DS_URL=jdbc:mysql://172.20.0.235:3306/openjob?useUnicode=true&characterEncoding=UTF-8&serverTimezone=Asia/Shanghai
OJ_LOG_STORAGE_MYSQL_URL=jdbc:mysql://172.20.0.235:3306/openjob?useUnicode=true&characterEncoding=UTF-8&serverTimezone=Asia/Shanghai
提示
-
数据库必须手动创建
-
容器运行涉及多项参数配置,使用配置文件更方便,其次也可以启动时通过命令传递参数(环境变量)。
-
配置 AKKA_REMOTE_HOSTNAME 为当前机器 IP,不能是 127.0.0.1,否则会导致网络不通,客户端通过 IP 连接 Server。
-
另外,有需要chatGPT和jb授权账号的小伙伴,可以点击「原文阅读」,去我网站购买,24h自动发货。
运行命令
docker run --env-file .env -it -d -p 8080:8080 -p 25520:25520 openjob/openjob-server:latest /bin/bash
运行成功,访问 http://127.0.0.1:8080/
-
账号: openjob
-
密码: openjob.io
优势对比
Openjob 适用于业务有一定的定时任务需求,非常适用于定时任务与延时任务一体化解决场景,比如每天凌晨数据清理、生成数据报表。同时适用于轻量级计算,可以使用 Map/MapReduce 实现分布式数据计算。对于复杂的任务流或任务编排场景可以使用可视化工作流,轻松解决。
文档
-
官方网站:https://openjob.io/
-
官方文档:https://openjob.io/zh-Hans/docs/intro/
-
Github:https://github.com/open-job/openjob