powerjob的部署及demo教程(比官网更官网)

前言

        首先先需要认识一下powerjob这个理念上较为突破的分布式任务调度框架,下面是截自官网的一些简介:

设计目标

PowerJob 的设计目标为企业级的分布式任务调度平台,即成为公司内部的任务调度中间件。整个公司统一部署调度中心 powerjob-server,旗下所有业务线应用只需要依赖 powerjob-worker 即可接入调度中心获取任务调度与分布式计算能力。

同类产品对比

QuartZ

xxl-job

SchedulerX 2.0

PowerJob

定时类型

CRON

CRON

CRON、固定频率、固定延迟、OpenAPI

CRON、固定频率、固定延迟、OpenAPI

任务类型

内置Java

内置Java、GLUE Java、Shell、Python等脚本

内置Java、外置Java(FatJar)、Shell、Python等脚本

内置Java、外置Java(容器)、Shell、Python等脚本

分布式任务

静态分片

MapReduce 动态分片

MapReduce 动态分片

在线任务治理

不支持

支持

支持

支持

日志白屏化

不支持

支持

不支持

支持

调度方式及性能

基于数据库锁,有性能瓶颈

基于数据库锁,有性能瓶颈

不详

无锁化设计,性能强劲无上限

报警监控

邮件

短信

邮件,提供接口允许开发者扩展

系统依赖

关系型数据库(MySQL、Oracle...)

MySQL

人民币

任意 Spring Data Jpa支持的关系型数据库(MySQL、Oracle...)

DAG 工作流

不支持

不支持

支持

支持

环境部署

        然后就直接开始正片部署吧,首先需要必须理清一些概念,由于主要分为两个角色,server(任务调度中心)可以理解为老板,老板按一个工作表(即为CRON表达式等等)指挥worker(执行器)干活,给我们就是甲方可以提供工作表和指定worker执行等等个性化操作。所以worker和server必须能够双向通信,即这俩种情况,都在公网且有公网ip且能相互访问,在同一局域网下且能够相互访问

局域网部署

        一般测试,开发环境直接把server放到局域网即可,因为worker需要放在本地来调式,局域网里为了方便,直接使用源码或达成jar包部署,主要分三块,只有数据库配置必不可缺

            

        打开配置文件,主要需要配置三个部分,数据库(必不可缺)日志(可选)邮件(可选),钉钉登录(可选)其他的端口配置等配置根据具体情况调整。然后直接启动即可,没有报错即启动成功。

        然后是worker的部署(java内嵌版),配置一览:

powerjob:
  worker:
    # akka 工作端口,可选,默认 27777
    akka-port: 27777
    # 接入应用名称,用于分组隔离,推荐填写 本 Java 项目名称
    app-name: music-service-admin
    # 调度服务器地址,IP:Port 或 域名,多值逗号分隔
    server-address: 192.168.4.44:7700
    # 通讯协议,4.3.0 开始支持 HTTP 和 AKKA 两种协议,官方推荐使用 HTTP 协议(注意 server 和 worker 都要开放相应端口)
    protocol: http
    # 持久化方式,可选,默认 disk
    store-strategy: disk
    # 任务返回结果信息的最大长度,超过这个长度的信息会被截断,默认值 8192
    max-result-length: 8192
    # 单个任务追加的工作流上下文最大长度,超过这个长度的会被直接丢弃,默认值 8192
    max-appended-wf-context-length: 8192
    # 同时运行的轻量级任务数量上限
    max-lightweight-task-num: 1024
    # 同时运行的重量级任务数量上限
    max-heavy-task-num: 64

主要修改的就是server-address属性,改成server的地址即可(局域网或本机)

demo代码如下:

@Component
@Slf4j
public class HeatProcessor implements BasicProcessor {


    @Override
    public ProcessResult process(TaskContext context) throws Exception {


        UUID uuid = UUID.randomUUID();
        log.info("UUID:{}", uuid);
        return new ProcessResult(true, "result is " + uuid);
    }
}

 然后启动,没问题的话,在控制台即可看到机器信息,如果看不见,那就是因为版本问题,worker的版本必须小于server的版本,版本参考:

<!-- 执行器 -->
<dependency>
    <groupId>tech.powerjob</groupId>
    <artifactId>powerjob-worker-spring-boot-starter</artifactId>
    <version>4.0.0</version>
</dependency>


调度中心
----------------

<modelVersion>4.0.0</modelVersion>
<artifactId>powerjob-server</artifactId>
<version>5.1.1</version>
<packaging>pom</packaging>

公网部署

        公网部署也是相同道理,打成jar包即可,如果还遇到问题,留言即可

主要问题点

        1. 网络隔离问题,检查防火墙并ping。

        2. 版本问题

     

前言

        首先先需要认识一下powerjob这个理念上较为突破的分布式任务调度框架,下面是截自官网的一些简介:

设计目标

PowerJob 的设计目标为企业级的分布式任务调度平台,即成为公司内部的任务调度中间件。整个公司统一部署调度中心 powerjob-server,旗下所有业务线应用只需要依赖 powerjob-worker 即可接入调度中心获取任务调度与分布式计算能力。

同类产品对比

QuartZ

xxl-job

SchedulerX 2.0

PowerJob

定时类型

CRON

CRON

CRON、固定频率、固定延迟、OpenAPI

CRON、固定频率、固定延迟、OpenAPI

任务类型

内置Java

内置Java、GLUE Java、Shell、Python等脚本

内置Java、外置Java(FatJar)、Shell、Python等脚本

内置Java、外置Java(容器)、Shell、Python等脚本

分布式任务

静态分片

MapReduce 动态分片

MapReduce 动态分片

在线任务治理

不支持

支持

支持

支持

日志白屏化

不支持

支持

不支持

支持

调度方式及性能

基于数据库锁,有性能瓶颈

基于数据库锁,有性能瓶颈

不详

无锁化设计,性能强劲无上限

报警监控

邮件

短信

邮件,提供接口允许开发者扩展

系统依赖

关系型数据库(MySQL、Oracle...)

MySQL

人民币

任意 Spring Data Jpa支持的关系型数据库(MySQL、Oracle...)

DAG 工作流

不支持

不支持

支持

支持

环境部署

        然后就直接开始正片部署吧,首先需要必须理清一些概念,由于主要分为两个角色,server(任务调度中心)可以理解为老板,老板按一个工作表(即为CRON表达式等等)指挥worker(执行器)干活,给我们就是甲方可以提供工作表和指定worker执行等等个性化操作。所以worker和server必须能够双向通信,即这俩种情况,都在公网且有公网ip且能相互访问,在同一局域网下且能够相互访问

局域网部署

        一般测试,开发环境直接把server放到局域网即可,因为worker需要放在本地来调式,局域网里为了方便,直接使用源码或达成jar包部署,主要分三块,只有数据库配置必不可缺

            

        打开配置文件,主要需要配置三个部分,数据库(必不可缺)日志(可选)邮件(可选),钉钉登录(可选)其他的端口配置等配置根据具体情况调整。然后直接启动即可,没有报错即启动成功。

        然后是worker的部署(java内嵌版),配置一览:

powerjob:
  worker:
    # akka 工作端口,可选,默认 27777
    akka-port: 27777
    # 接入应用名称,用于分组隔离,推荐填写 本 Java 项目名称
    app-name: music-service-admin
    # 调度服务器地址,IP:Port 或 域名,多值逗号分隔
    server-address: 192.168.4.44:7700
    # 通讯协议,4.3.0 开始支持 HTTP 和 AKKA 两种协议,官方推荐使用 HTTP 协议(注意 server 和 worker 都要开放相应端口)
    protocol: http
    # 持久化方式,可选,默认 disk
    store-strategy: disk
    # 任务返回结果信息的最大长度,超过这个长度的信息会被截断,默认值 8192
    max-result-length: 8192
    # 单个任务追加的工作流上下文最大长度,超过这个长度的会被直接丢弃,默认值 8192
    max-appended-wf-context-length: 8192
    # 同时运行的轻量级任务数量上限
    max-lightweight-task-num: 1024
    # 同时运行的重量级任务数量上限
    max-heavy-task-num: 64

主要修改的就是server-address属性,改成server的地址即可(局域网或本机)

demo代码如下:

@Component
@Slf4j
public class HeatProcessor implements BasicProcessor {


    @Override
    public ProcessResult process(TaskContext context) throws Exception {


        UUID uuid = UUID.randomUUID();
        log.info("UUID:{}", uuid);
        return new ProcessResult(true, "result is " + uuid);
    }
}

 然后启动,没问题的话,在控制台即可看到机器信息,如果看不见,那就是因为版本问题,worker的版本必须小于server的版本,版本参考:

<!-- 执行器 -->
<dependency>
    <groupId>tech.powerjob</groupId>
    <artifactId>powerjob-worker-spring-boot-starter</artifactId>
    <version>4.0.0</version>
</dependency>


调度中心
----------------

<modelVersion>4.0.0</modelVersion>
<artifactId>powerjob-server</artifactId>
<version>5.1.1</version>
<packaging>pom</packaging>

公网部署

        公网部署也是相同道理,打成jar包即可,如果还遇到问题,留言即可

主要问题点

        1. 网络隔离问题,检查防火墙并ping。

        2. 版本问题

     

前言

        首先先需要认识一下powerjob这个理念上较为突破的分布式任务调度框架,下面是截自官网的一些简介:

设计目标

PowerJob 的设计目标为企业级的分布式任务调度平台,即成为公司内部的任务调度中间件。整个公司统一部署调度中心 powerjob-server,旗下所有业务线应用只需要依赖 powerjob-worker 即可接入调度中心获取任务调度与分布式计算能力。

同类产品对比

QuartZ

xxl-job

SchedulerX 2.0

PowerJob

定时类型

CRON

CRON

CRON、固定频率、固定延迟、OpenAPI

CRON、固定频率、固定延迟、OpenAPI

任务类型

内置Java

内置Java、GLUE Java、Shell、Python等脚本

内置Java、外置Java(FatJar)、Shell、Python等脚本

内置Java、外置Java(容器)、Shell、Python等脚本

分布式任务

静态分片

MapReduce 动态分片

MapReduce 动态分片

在线任务治理

不支持

支持

支持

支持

日志白屏化

不支持

支持

不支持

支持

调度方式及性能

基于数据库锁,有性能瓶颈

基于数据库锁,有性能瓶颈

不详

无锁化设计,性能强劲无上限

报警监控

邮件

短信

邮件,提供接口允许开发者扩展

系统依赖

关系型数据库(MySQL、Oracle...)

MySQL

人民币

任意 Spring Data Jpa支持的关系型数据库(MySQL、Oracle...)

DAG 工作流

不支持

不支持

支持

支持

环境部署

        然后就直接开始正片部署吧,首先需要必须理清一些概念,由于主要分为两个角色,server(任务调度中心)可以理解为老板,老板按一个工作表(即为CRON表达式等等)指挥worker(执行器)干活,给我们就是甲方可以提供工作表和指定worker执行等等个性化操作。所以worker和server必须能够双向通信,即这俩种情况,都在公网且有公网ip且能相互访问,在同一局域网下且能够相互访问

局域网部署

        一般测试,开发环境直接把server放到局域网即可,因为worker需要放在本地来调式,局域网里为了方便,直接使用源码或达成jar包部署,主要分三块,只有数据库配置必不可缺

            

        打开配置文件,主要需要配置三个部分,数据库(必不可缺)日志(可选)邮件(可选),钉钉登录(可选)其他的端口配置等配置根据具体情况调整。然后直接启动即可,没有报错即启动成功。

        然后是worker的部署(java内嵌版),配置一览:

powerjob:
  worker:
    # akka 工作端口,可选,默认 27777
    akka-port: 27777
    # 接入应用名称,用于分组隔离,推荐填写 本 Java 项目名称
    app-name: music-service-admin
    # 调度服务器地址,IP:Port 或 域名,多值逗号分隔
    server-address: 192.168.4.44:7700
    # 通讯协议,4.3.0 开始支持 HTTP 和 AKKA 两种协议,官方推荐使用 HTTP 协议(注意 server 和 worker 都要开放相应端口)
    protocol: http
    # 持久化方式,可选,默认 disk
    store-strategy: disk
    # 任务返回结果信息的最大长度,超过这个长度的信息会被截断,默认值 8192
    max-result-length: 8192
    # 单个任务追加的工作流上下文最大长度,超过这个长度的会被直接丢弃,默认值 8192
    max-appended-wf-context-length: 8192
    # 同时运行的轻量级任务数量上限
    max-lightweight-task-num: 1024
    # 同时运行的重量级任务数量上限
    max-heavy-task-num: 64

主要修改的就是server-address属性,改成server的地址即可(局域网或本机)

demo代码如下:

@Component
@Slf4j
public class HeatProcessor implements BasicProcessor {


    @Override
    public ProcessResult process(TaskContext context) throws Exception {


        UUID uuid = UUID.randomUUID();
        log.info("UUID:{}", uuid);
        return new ProcessResult(true, "result is " + uuid);
    }
}

 然后启动,没问题的话,在控制台即可看到机器信息,如果看不见,那就是因为版本问题,worker的版本必须小于server的版本,版本参考:

<!-- 执行器 -->
<dependency>
    <groupId>tech.powerjob</groupId>
    <artifactId>powerjob-worker-spring-boot-starter</artifactId>
    <version>4.0.0</version>
</dependency>


调度中心
----------------

<modelVersion>4.0.0</modelVersion>
<artifactId>powerjob-server</artifactId>
<version>5.1.1</version>
<packaging>pom</packaging>

公网部署

        公网部署也是相同道理,打成jar包即可,如果还遇到问题,留言即可

主要问题点

        1. 网络隔离问题,检查防火墙并ping。

        2. 版本问题

     

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值