ToB企服应用市场:ToB评测及商务社交产业平台

标题: 项目终于用上了 PowerJob,睡觉真香! [打印本页]

作者: 麻花痒    时间: 2024-6-17 15:11
标题: 项目终于用上了 PowerJob,睡觉真香!
最近项目中使用了PowerJob做任务调理模块,感觉这个框架真香,今天我们就来深入相识一下新一代的定时任务框架——PowerJob!
简介

PowerJob是基于java开辟的企业级的分布式任务调理平台,与xxl-job一样,基于web页面实现任务调理配置与记录,使用简朴,上手快速,其告急功能特性如下:
相对于其他定时任务框架具有无锁化设计,更强悍的性能支撑,我们通过官网的产品对比可以相识详情:

官网文档:http://www.powerjob.tech/
与传统的定时任务框架对比,powerJob支持更多的定时任务类型:
安装

PowerJob支持两种安装方式,一是通过jar包运行,一是通过docker安装
docker的安装较为简朴,且官网有具体阐明,这里就不单独解说了,各人可参考官方文档:
https://www.yuque.com/powerjob/guidence/docker-compose
怎样通过jar形式运行的
1、首先我们可以在github上下载源码,可以自己编译打包
https://github.com/PowerJob/PowerJob
可以在releases中下载指定版本
2、在IDE中打开后,我们powerjob-server就是我们要的服务端源码,可以直接编译,而powerjob-worker-samples就是springboot下的使用示例
3、在运行编译服务端之前,我们须要先创建数据库,在指定的数据库下创建即可
  1. CREATE DATABASE IF NOT EXISTS `powerjob-daily` DEFAULT CHARSET utf8mb4
复制代码
4、然后将powerjob-server/powerjob-server-starter下的application-daily.properties配置文件中的数据库配置改成你服务器的
其中daily,pre,product 体现一样平常、预生产、生产环境下的配置,与我们常见的dev, test, prod类似,可以根据须要进行调整

其中还有邮箱及其他配置,如果有须要也可以调整,服务端的参数配置可参考官网文档。
5、我们先来当地运行启动类PowerJobServerApplication一下试试,启动乐成后,访问http://localhost:7700,出现登陆页则阐明运行乐成

6、先注册一个执行器,注意这里的应用名称不能顺便取,下文在客户端的配置的app-name要与该名称保持一致
7、然后用该执行器名和密码登录
8、如下,我们就登录乐成了

9、如果须要发布到服务器或虚拟机上运行,可以进行编译打包操作:
1)点击mvn install 将依赖包打包到当地堆栈

注意,如果这里报错
  1. Please refer to /Library/project/study/java/PowerJob-4.3.2/powerjob-server/powerjob-server-starter/target/surefire-reports for the individual test results.
复制代码
那么可以将maven的健康查抄关闭
点击如图所示按钮,并且看到test置灰,则体现关闭

2)执行mvn package打包项目

10、在powerjob-server-starter的target目次下即可看到打包出来的jar,将其上传到指定服务器,通过java -jar指令即可运行

定时任务创建

1、创建一个springboot项目,用于定时任务客户端,引入客户端依赖,如果是spring或其他java项目引入,可参考官网文档:
https://www.yuque.com/powerjob/guidence/ygonln
  1. <dependency>
  2.     <groupId>tech.powerjob</groupId>
  3.     <artifactId>powerjob-worker-spring-boot-starter</artifactId>
  4.     <version>4.3.2</version>
  5. </dependency>
复制代码
推荐一个开源免费的 Spring Boot 实战项目:
https://github.com/javastacks/spring-boot-best-practice
2、修改配置文件
  1. powerjob:
  2.   worker:
  3.     enabled: true
  4.     enable-test-mode: false
  5.     # 数据传输端口,默认27777
  6.     port: 27777
  7.     # 应用名称,与服务端创建的应用账号的名称保持一致
  8.     app-name: powerjob-agent-test
  9.     # 服务端地址,多个用,隔开
  10.     server-address: 127.0.0.1:7700
  11.     # 通讯协议,4.3.0之后支持http和akka,4.3.0之前仅支持akka,官方推荐http
  12.     protocol: http
  13.     # 任务返回结果信息的最大长度,超过该值将被截断
  14.     max-result-length: 4096
  15.     # 同时运行的轻量级任务数量上限
  16.     max-lightweight-task-num: 1024
  17.     # 同时运行的重量级任务数量上限
  18.     max-heavy-task-num: 64
复制代码
3、启动类上添加注解@EnableScheduling
4、通过说明BasicProcessor接口,实现process方法来书写一个简朴的定时任务示例类,注意要声明为bean
  1. /**
  2. * @author benjamin_5
  3. * @Description 简单任务执行器
  4. * @date 2023/5/3
  5. */
  6. @Component
  7. public class SimpleJobServer implements BasicProcessor {
  8.     @Override
  9.     public ProcessResult process(TaskContext taskContext) throws Exception {
  10.         String jobParams = taskContext.getJobParams();
  11.         System.out.println("参数: " + jobParams);
  12.         System.out.println("定时任务执行");
  13.         return new ProcessResult(true, "定时任务执行成功");
  14.     }
  15. }
复制代码
5、启动客户端项目,运行乐成后,可以在服务端首页看到机器实例

6、服务端任务管理点击新建任务
其中处理器配置是通过书写处理器的全类路径名来声明的,好比我这里是com.example.powerjobdemo.job.SimpleJobServer

7、创建乐成后,可以在列表看到新建的任务

8、打开客户端控制台,也能看到输出的参数和执行打印,阐明任务执行乐成

9、同时我们可以在运行记录中看到执行日志


至此,针对powerjob的最简朴使用就完成了,接下来我们继续来看关于powjob的配置详解
任务配置参数详解

创建任务时我们可以看到如下图所示的配置:

定时信息:
告急选择定时任务类型,支持API, CRON,固定频率、固定延伸、工作流、每日固定间隔等几种定时任务类型。
生命周期:
这是比其他任务框架更便捷的功能,指定了任务的生效周期,如果该任务是预定某时间段内执行的,可以通过该参数配置
执行配置:
运行时配置:
更多阐明,可在官方文档中检察。
版权声明:本文为博主原创文章,遵照 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。
本文链接:https://blog.csdn.net/qq_24950043/article/details/130175241
更多文章推荐:
1.Spring Boot 3.x 教程,太全了!
2.2,000+ 道 Java面试题及答案整理(2024最新版)
3.免费获取 IDEA 激活码的 7 种方式(2024最新版)
觉得不错,别忘了随手点赞+转发哦!

免责声明:如果侵犯了您的权益,请联系站长,我们会及时删除侵权内容,谢谢合作!更多信息从访问主页:qidao123.com:ToB企服之家,中国第一个企服评测及商务社交产业平台。




欢迎光临 ToB企服应用市场:ToB评测及商务社交产业平台 (https://dis.qidao123.com/) Powered by Discuz! X3.4