本文来说下PowerJob客户端连接
文章目录
- 启动服务端
- 编写示例代码
- 编写自己的处理器
- 启动示例程序
- 任务配置与运行
- 配置任务
- 创建任务
- 执行结果
- 运行结果
- 问题及解决
- 本文小结
启动服务端
启动服务端:http://127.0.0.1:7700/#/oms/home
编写示例代码
进入示例工程(powerjob-worker-samples),修改配置文件连接powerjob-server并编写自己的处理器代码。
application.properties(修改后的)
server.port=8081
spring.jpa.open-in-view=false
########### PowerJob-worker properties. ###########
# Whether to enable PowerJob Worker, default is true
powerjob.worker.enabled=true
# Turn on test mode and do not force the server connection to be verified
powerjob.worker.enable-test-mode=false
# Transport port, default is 27777
powerjob.worker.port=27777
# Application name, used for grouping applications. Recommend to set the same value as project name.
powerjob.worker.app-name=powerjob-worker-samples
# Address of PowerJob-server node(s). Ip:port or domain. Multiple addresses should be separated with comma.
powerjob.worker.server-address=127.0.0.1:7700,127.0.0.1:7701
# transport protocol between server and worker
powerjob.worker.protocol=http
# Store strategy of H2 database. disk or memory. Default value is disk.
powerjob.worker.store-strategy=disk
# Max length of result. Results that are longer than the value will be truncated.
powerjob.worker.max-result-length=4096
# Max length of appended workflow context . Appended workflow context value that is longer than the value will be ignore.
powerjob.worker.max-appended-wf-context-length=4096
编写自己的处理器
随便找个地方新建类,继承你想要使用的处理器(各个处理器的介绍可见官方文档,文档非常详细)。
这里为了简单演示,选择使用单机处理器BasicProcessor,新建类:
package tech.powerjob.samples.processors;
import lombok.extern.slf4j.Slf4j;
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;
@Slf4j
@Component
public class MyStandaloneProcessor implements BasicProcessor {
@Override
public ProcessResult process(TaskContext context) throws Exception {
OmsLogger omsLogger = context.getOmsLogger();
log.info("======================================>>>>>");
omsLogger.info("处理器启动成功,context 是 {}.", context);
log.info("单机处理器正在处理");
log.info(context.getJobParams());
omsLogger.info("处理器执行结束");
boolean success = true;
return new ProcessResult(success, context + ": " + success);
}
}
启动示例程序
直接运行主类:tech.powerjob.samples.SampleApplication
任务配置与运行
调度服务器与示例工程都启动完毕后,再次前往Web页面( http://127.0.0.1:7700/ ),进行任务的配置与运行。
配置任务
在首页输入框输入配置的应用名称,成功操作后会正式进入前端管理界面。
创建任务
任务管理=> 新建任务(右上角)
执行结果
运行结果
问题及解决
问题:我设置的是CRON,每5秒执行,但它实际15秒执行一次。
原因:Powerjob的CRON模式下,时间轮是15秒扫描一次,这时间间隔不能小于15秒。若低于15秒会按15秒运行。
解决方案:改为固定频率或固定延迟进行。
修改设置如下:
执行结果:
本文小结
本文编写了一个简单的实例来说明PowerJob客户端的使用