ratch-job 试用

以前简单介绍过ratch-job 的能力,以下是一个简单试用说明

部署环境

  • docker-compose
services:
  ratchjob:
    image: qingpan/ratchjob:latest
    ports:
      - "8725:8725"
      - "8825:8825"
      - "8925:8925"
    volumes:
      - ./data:/io:rw
    environment:
      - RATCH_HTTP_API_PORT=8725
      - RATCH_XXL_DEFAULT_ACCESS_TOKEN=mydemo
      - DEFAULT_XXL_JOB_ADMIN_PREFIX_PATH=/xxl-job-admin
  • java 代码

实际代码可以直接使用xxl-job官方的示例代码,比较简单,说下配置相关的,核心是地址的端口,与默认的是8080 不同ratchjob使用的是

8725 是http api 的,8825 是console 管理的,8925 是grpc 端口方便集群维护的

xxl.job.admin.addresses=http://127.0.0.1:8725/xxl-job-admin
  • api 接口模式注册
curl -X POST "http://127.0.0.1:8725/ratch/v1/job/create" -H 'Content-Type: application/json' -d '{"appName":"xxl-job-executor-sample","namespace":"xxl","handleName":"demoJobHandler","description":"测试","blockingStrategy":"SERIAL_EXECUTION"}'
  • 界面

执行器

任务

任务执行

集群部署参考

  • docker-compose
version: '3.8' # 指定版本号

services: # 所有需要启动的服务
  ratch-job-master: # 主节点
    image: qingpan/ratchjob:stable
    container_name: ratch-job-master
    environment: # 环境变量
      - RUST_LOG=warn
      - RATCH_XXL_DEFAULT_ACCESS_TOKEN=default_token
      - DEFAULT_XXL_JOB_ADMIN_PREFIX_PATH=/xxl-job-admin
      - RATCH_HTTP_API_PORT=8725
      - RATCH_DATA_DIR=db
      - RATCH_RAFT_NODE_ID=1
      - RATCH_RAFT_NODE_ADDR=ratch-job-master:8925
      - RATCH_RAFT_AUTO_INIT=true
      - TZ=Asia/Shanghai
    volumes:
      - ./data1:/io:rw
    ports: # 宿主机和容器的端口映射关系
      # 左边宿主机端口:右边容器端口
      - "8725:8725" 
      - "8825:8825" 
      - "8925:8925" 
    networks: # 配置容器连接的网络,引用顶级networks下的条目
      - ratchjob
    restart: always
  ratch-job-slave1: # 从节点
    image: qingpan/ratchjob:stable
    container_name: ratch-job-slave1
    environment: # 环境变量
      - RUST_LOG=warn
      - RATCH_XXL_DEFAULT_ACCESS_TOKEN=default_token
      - DEFAULT_XXL_JOB_ADMIN_PREFIX_PATH=/xxl-job-admin
      - RATCH_HTTP_API_PORT=8725
      - RATCH_DATA_DIR=db
      - RATCH_RAFT_NODE_ID=2
      - RATCH_RAFT_NODE_ADDR=ratch-job-slave1:8925
      - RATCH_RAFT_JOIN_ADDR=ratch-job-master:8925
      - TZ=Asia/Shanghai
    volumes:
      - ./data2:/io:rw
    networks: 
      - ratchjob
    restart: always
    depends_on:
      - ratch-job-master
  ratch-job-slave2: # 从节点
    image: qingpan/ratchjob:stable
    container_name: ratch-job-slave2
    environment: # 环境变量
      - RUST_LOG=warn
      - RATCH_XXL_DEFAULT_ACCESS_TOKEN=default_token
      - DEFAULT_XXL_JOB_ADMIN_PREFIX_PATH=/xxl-job-admin
      - RATCH_HTTP_API_PORT=8725
      - RATCH_DATA_DIR=db
      - RATCH_RAFT_NODE_ID=3
      - RATCH_RAFT_NODE_ADDR=ratch-job-slave2:8925
      - RATCH_RAFT_JOIN_ADDR=ratch-job-master:8925
      - TZ=Asia/Shanghai
    volumes:
      - ./data3:/io:rw
    networks: 
      - ratchjob
    restart: always
    depends_on:
      - ratch-job-master 
      - ratch-job-slave1
# 定义网络,可以多个,如果不声明,默认会创建一个网络名称为“工程名称_default”的bridge网络
networks:
  ratchjob: # 一个具体网络的条目名称
    name: ratchjob # 网络名称,默认为“工程名称_网络条目名称”
    driver: bridge # 网络模式,默认为bridge

说明

对于ratchjob 的处理执行器会自动注册到应用中,目前ratch-job 缺少用户管理以及权限认证,注意安全问题,目前ratchjob 还有不少功能暂时未实现

参考资料

https://github.com/ratch-job/ratch-job

https://github.com/xuxueli/xxl-job/tree/2.4.2/xxl-job-executor-samples/xxl-job-executor-sample-springboot

posted on 2025-06-19 08:00  荣锋亮  阅读(27)  评论(0)    收藏  举报

导航