前言
PowerJob官网
代码结构
一、搭建powerjob-server
如果本地,根据官网的介绍,从github下载代码,创建数据库,修改powerjob-server的数据库连接。启动即可
一、pom.xml
<?xml version="1.0" encoding="UTF-8"?>
<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 https://maven.apache.org/xsd/maven-4.0.0.xsd">
<modelVersion>4.0.0</modelVersion>
<parent>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-parent</artifactId>
<version>2.7.6</version>
<relativePath/> <!-- lookup parent from repository -->
</parent>
<groupId>com.example</groupId>
<artifactId>power-job</artifactId>
<version>0.0.1-SNAPSHOT</version>
<name>power-job</name>
<description>power-job</description>
<properties>
<java.version>8</java.version>
</properties>
<dependencies>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter</artifactId>
<version>2.7.18</version>
<scope>compile</scope>
</dependency>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-configuration-processor</artifactId>
<version>2.7.18</version>
<optional>true</optional>
</dependency>
<dependency>
<groupId>tech.powerjob</groupId>
<artifactId>powerjob-worker-spring-boot-starter</artifactId>
<version>4.3.9</version>
</dependency>
</dependencies>
<build>
<plugins>
<plugin>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-maven-plugin</artifactId>
</plugin>
</plugins>
</build>
</project>
二、application.yml
server:
port: 9991
spring:
application:
name: power-job
powerjob:
worker:
akka-port: 27777
app-name: power-job
server-address: 10.10.100.31:7700
protocol: http
store-strategy: disk
max-result-length: 4096
max-appended-wf-context-length: 4096
max-lightweight-task-num: 1024
max-heavyweight-task-num: 64
三、启动效果
1、搭建完成
localhost:7700
2、应用注册
输入application.yml中的app-name,随便输入一个密码1
3、登录
输入刚刚的app-name和密码
三、单机处理器
package com.example.powerjob.task;
import org.springframework.stereotype.Component;
import tech.powerjob.worker.core.processor.ProcessResult;
import tech.powerjob.worker.core.processor.TaskContext;
import tech.powerjob.worker.core.processor.sdk.BasicProcessor;
import tech.powerjob.worker.log.OmsLogger;
import javax.annotation.Resource;
// 支持 SpringBean 的形式
@Component
public class BasicProcessorDemo implements BasicProcessor {
@Override
public ProcessResult process(TaskContext context) throws Exception {
// 在线日志功能,可以直接在控制台查看任务日志,非常便捷
OmsLogger omsLogger = context.getOmsLogger();
omsLogger.info("BasicProcessorDemo start to process, current JobParams is {}.", context.getJobParams());
// TaskContext为任务的上下文信息,包含了在控制台录入的任务元数据,常用字段为
// jobParams(任务参数,在控制台录入),instanceParams(任务实例参数,通过 OpenAPI 触发的任务实例才可能存在该参数)
// 进行实际处理...
System.out.println(1);
// 返回结果,该结果会被持久化到数据库,在前端页面直接查看,极为方便
return new ProcessResult(true, "result is xxx");
}
}
配置
总结
后续对其他的深入用法
四、其他模式
后来发现,在代码中有例子,直接测试就好了
启动这俩个服务,然后在processors有各种的示例,包括单机、广播、MapReduc
如果想测试俩个点的。
官方代码启一份,本地代码启一份,修改端口
效果
如果想测试广播模式。自己写的代码的包名必须一致
效果
完成!