PowerJob 快速上手 执行器与您的业务系统快速集成(单机版)(二)
Server酱消息推送集成PowerJob,完成定时推送
一、应用整合
1、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.kiwifruit</groupId> <artifactId>serverj</artifactId> <version>0.0.1-SNAPSHOT</version> <name>serverj</name> <description>Server酱消息推送</description> <properties> <java.version>8</java.version> </properties> <dependencies> <dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-web</artifactId> </dependency> <dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-devtools</artifactId> <scope>runtime</scope> <optional>true</optional> </dependency> <dependency> <groupId>org.projectlombok</groupId> <artifactId>lombok</artifactId> <optional>true</optional> </dependency> <!--快速集成PowerJob执行器--> <dependency> <groupId>tech.powerjob</groupId> <artifactId>powerjob-worker-spring-boot-starter</artifactId> <version>4.3.1</version> </dependency> <!--引入httpClient--> <dependency> <groupId>org.apache.httpcomponents</groupId> <artifactId>httpclient</artifactId> </dependency> <dependency> <groupId>commons-lang</groupId> <artifactId>commons-lang</artifactId> <version>2.6</version> </dependency> <dependency> <groupId>commons-io</groupId> <artifactId>commons-io</artifactId> <version>2.6</version> </dependency> <dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-test</artifactId> <scope>test</scope> </dependency> </dependencies> <build> <plugins> <plugin> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-maven-plugin</artifactId> <configuration> <excludes> <exclude> <groupId>org.projectlombok</groupId> <artifactId>lombok</artifactId> </exclude> </excludes> </configuration> </plugin> </plugins> </build> </project>
2、application.properties
server.port=7001 spring.application.name=serverj #powerjob配置 # akka 工作端口,可选,默认 27777 powerjob.worker.akka-port=27777 # 接入应用名称,用于分组隔离,推荐填写 本 Java 项目名称 powerjob.worker.app-name=serverj # 调度服务器地址,IP:Port 或 域名,多值逗号分隔 powerjob.worker.server-address=192.168.56.12:7700 # 通讯协议,4.3.0 开始支持 HTTP 和 AKKA 两种协议,官方推荐使用 HTTP 协议(注意 server 和 worker 都要开放相应端口) powerjob.worker.protocol=http # 持久化方式,可选,默认 disk powerjob.worker.store-strategy=disk # 任务返回结果信息的最大长度,超过这个长度的信息会被截断,默认值 8192 powerjob.worker.max-result-length=4096 # 单个任务追加的工作流上下文最大长度,超过这个长度的会被直接丢弃,默认值 8192 powerjob.worker.max-appended-wf-context-length=4096 # 同时运行的轻量级任务数量上限 powerjob.worker.max-lightweight-task-num=1024 # 同时运行的重量级任务数量上限 powerjob.worker.max-heavy-task-num=64
3、业务代码
package com.kiwifruit.serverj.processors; import com.kiwifruit.serverj.util.HttpClientUtils; import lombok.SneakyThrows; 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 java.net.URLEncoder; import java.time.LocalDateTime; import java.time.format.DateTimeFormatter; @Component public class PushMsgProcessors implements BasicProcessor { public final static String SEND_KEY="SCT202698T2q0cvO6CF6XeevC7cOcmCWeg"; public final static String REQUEST_URL = "https://sctapi.ftqq.com/"+SEND_KEY+".send"; @SneakyThrows @Override public ProcessResult process(TaskContext taskContext) { String now = LocalDateTime.now().format(DateTimeFormatter.ofPattern("yyyyMMddHHmmss")); String requestUrl = REQUEST_URL+"?title=%s&desp=%s"; String title = URLEncoder.encode("测试一下消息推送", "UTF-8"); String desp = URLEncoder.encode(now+" 您该签到啦!!!", "UTF-8"); requestUrl = String.format(requestUrl, title, desp); System.out.println(requestUrl); HttpClientUtils.get(requestUrl); boolean success = true; return new ProcessResult(success, taskContext + ": " + success); } }
4、注册应用,打包部署
注册应用,此处略过
1、启动服务
nohup java -jar serverj-0.0.1-SNAPSHOT.jar >/dev/null 2>&1 &
2、完成应用注册到调度器
3、PowerJob配置自动任务
4、点击立即执行
(注意时间不一致是因为,服务器时间和现实时间不同步)
推送成功!!!!!!!!
本文作者:KwFruit
本文链接:https://www.cnblogs.com/mangoubiubiu/p/17258914.html
版权声明:本作品采用知识共享署名-非商业性使用-禁止演绎 2.5 中国大陆许可协议进行许可。
分类:
任务调度 / PowerJob
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
2022-03-26 SpringSecurity自定义登录页面跳转时访问页面302