Skip to content

Latest commit

 

History

History

powerJob

Folders and files

NameName
Last commit message
Last commit date

parent directory

..
 
 
 
 
 
 
 
 
 
 
 
 
 
 

PowerJob

官网 文档

安装

JDK

安装

PowerJob

  1. 添加数据库 CREATE DATABASE IF NOT EXISTS `powerjob-product` DEFAULT CHARSET utf8mb4;
  2. 下载源码 git clone https://github.com/PowerJob/PowerJob.git
  3. 修改配置文件 powerjob-server\powerjob-server-starter\src\main\resources\application-product.properties, 调整MySql链接配置
  4. 打包 mvn clean package -U -Pdev -DskipTests

启动

nohup java -jar powerjob-server-starter-5.1.1.jar > /dev/null 2>&1 &

初始化

  1. 运行,查看日志, 获取默认密码
    [SystemInitializeService] [S1] create default PWJB user by request: ModifyUserInfoRequest(id=null, username=ADMIN, nick=ADMIN, password=powerjob_admin, webHook=null, phone=null, email=null, extra=null)
    
  2. 打开web管理页面
  3. 使用初始密码登录

应用初始化

  1. 登录页面
  2. 应用管理点击新增按钮
  3. appName填写同项目名
  4. 创建Spring项目
  5. 更改配置
    powerjob:
       worker:
          app-name: ${appName}
          server-address: ${服务器地址}
          protocol: http
          # 受PowerJob下发任务控制端口,因为是同台机器测试,故采用随机端口
          akka-port: ${random.int(1025,65535)}
  6. 完成项目内容
  7. 页面进入对应应用
  8. 任务管理页面新建任务
  9. 保存

执行类型

单机

BasicScheduler.java

选择一台机器执行

广播

BroadcastScheduler.java

preProcess``postProcess选择一台机器执行, process所有机器执行。 postProcess参数为preProcess结果及所有process结果。

MapReduce

MapReduceSchedule.java

选择一台机器执行process。首个任务调用isRootTask返回true

process可调用map方法分发任务。分发的任务将每个独立选择一台机器执行process(可继续分发)。 分发的任务使用context.getSubTask获取参数, 使用context.getTaskName()获取任务名称(子任务由map方法指定, 根任务固定为TaskConstant.ROOT_TASK_NAME)。

当所有任务执行完成后,选择一台机器调用reduce, 参数为所有process结果。