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 中国大陆许可协议进行许可。

posted @   KwFruit  阅读(1028)  评论(0编辑  收藏  举报
历史上的今天:
2022-03-26 SpringSecurity自定义登录页面跳转时访问页面302
点击右上角即可分享
微信分享提示
评论
收藏
关注
推荐
深色
回顶
收起