【黑马头条】day20—xxl-job(二)

本文涉及的产品
RDS MySQL Serverless 基础系列,0.5-2RCU 50GB
RDS MySQL Serverless 高可用系列,价值2615元额度,1个月
简介: 【黑马头条】day20—xxl-job(二)

2.4 配置部署调度中心-docker安装

1.创建mysql容器,初始化xxl-job的SQL脚本

docker run -p 3306:3306 --name mysql57 \
-v /opt/mysql/conf:/etc/mysql \
-v /opt/mysql/logs:/var/log/mysql \
-v /opt/mysql/data:/var/lib/mysql \
-e MYSQL_ROOT_PASSWORD=root \
-d mysql:5.7

2.拉取镜像

docker pull xuxueli/xxl-job-admin:2.3.0

3.创建容器

docker run -e PARAMS="--spring.datasource.url=jdbc:mysql://192.168.200.130:3306/xxl_job?Unicode=true&characterEncoding=UTF-8 \
--spring.datasource.username=root \
--spring.datasource.password=root" \
-p 8888:8080 -v /tmp:/data/applogs \
--name xxl-job-admin --restart=always  -d xuxueli/xxl-job-admin:2.3.0

2.5 xxl-job入门案例编写

2.5.1 登录调度中心,点击下图所示“新建任务”按钮,新建示例任务

 

2.5.2 创建xxljob-demo项目,导入依赖

<dependencies>
    <dependency>
        <groupId>org.springframework.boot</groupId>
        <artifactId>spring-boot-starter-web</artifactId>
    </dependency>
    <!--xxl-job-->
    <dependency>
        <groupId>com.xuxueli</groupId>
        <artifactId>xxl-job-core</artifactId>
        <version>2.3.0</version>
    </dependency>
</dependencies>

2.5.3 application.yml配置

server:
  port: 8881
xxl:
  job:
    admin:
      addresses: http://192.168.200.130:8888/xxl-job-admin
    executor:
      appname: xxl-job-executor-sample
      port: 9999


2.5.4 新建配置类

package com.heima.xxljob.config;
import com.xxl.job.core.executor.impl.XxlJobSpringExecutor;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
import org.springframework.beans.factory.annotation.Value;
import org.springframework.context.annotation.Bean;
import org.springframework.context.annotation.Configuration;
/**
 * xxl-job config
 *
 * @author xuxueli 2017-04-28
 */
@Configuration
public class XxlJobConfig {
    private Logger logger = LoggerFactory.getLogger(XxlJobConfig.class);
    @Value("${xxl.job.admin.addresses}")
    private String adminAddresses;
    @Value("${xxl.job.executor.appname}")
    private String appname;
    @Value("${xxl.job.executor.port}")
    private int port;
    @Bean
    public XxlJobSpringExecutor xxlJobExecutor() {
        logger.info(">>>>>>>>>>> xxl-job config init.");
        XxlJobSpringExecutor xxlJobSpringExecutor = new XxlJobSpringExecutor();
        xxlJobSpringExecutor.setAdminAddresses(adminAddresses);
        xxlJobSpringExecutor.setAppname(appname);
        xxlJobSpringExecutor.setPort(port);
        return xxlJobSpringExecutor;
    }
}

2.5.4 任务代码,重要注解:@XxlJob(“JobHandler”)

package com.heima.xxljob.job;
import com.xxl.job.core.handler.annotation.XxlJob;
import org.springframework.stereotype.Component;
@Component
public class HelloJob {
    @XxlJob("demoJobHandler")
    public void helloJob(){
        System.out.println("简单任务执行了。。。。");
    }
}

2.5.5 测试-单节点

  • 启动微服务
  • 在xxl-job的调度中心中启动任务

2.6 任务详解-执行器

  • 执行器:任务的绑定的执行器,任务触发调度时将会自动发现注册成功的执行器, 实现任务自动发现功能;
  • 另一方面也可以方便的进行任务分组。每个任务必须绑定一个执行器

以下是执行器的属性说明:

属性名称 说明
AppName 是每个执行器集群的唯一标示AppName, 执行器会周期性以AppName为对象进行自动注册。可通过该配置自动发现注册成功的执行器, 供任务调度时使用;
名称 执行器的名称, 因为AppName限制字母数字等组成,可读性不强, 名称为了提高执行器的可读性;
排序 执行器的排序, 系统中需要执行器的地方,如任务新增, 将会按照该排序读取可用的执行器列表;
注册方式 调度中心获取执行器地址的方式;
机器地址 注册方式为"手动录入"时有效,支持人工维护执行器的地址信息;

自动注册和手动注册的区别和配置

 

2.7 任务详解-基础配置

 

基础配置

  • 执行器:每个任务必须绑定一个执行器, 方便给任务进行分组
  • 任务描述:任务的描述信息,便于任务管理;
  • 负责人:任务的负责人;
  • 报警邮件:任务调度失败时邮件通知的邮箱地址,支持配置多邮箱地址,配置多个邮箱地址时用逗号分隔

调度配置

  • 调度类型:
  • 无:该类型不会主动触发调度;
  • CRON:该类型将会通过CRON,触发任务调度;
  • 固定速度:该类型将会以固定速度,触发任务调度;按照固定的间隔时间,周期性触发;

相关实践学习
基于CentOS快速搭建LAMP环境
本教程介绍如何搭建LAMP环境,其中LAMP分别代表Linux、Apache、MySQL和PHP。
全面了解阿里云能为你做什么
阿里云在全球各地部署高效节能的绿色数据中心,利用清洁计算为万物互联的新世界提供源源不断的能源动力,目前开服的区域包括中国(华北、华东、华南、香港)、新加坡、美国(美东、美西)、欧洲、中东、澳大利亚、日本。目前阿里云的产品涵盖弹性计算、数据库、存储与CDN、分析与搜索、云通信、网络、管理与监控、应用服务、互联网中间件、移动服务、视频服务等。通过本课程,来了解阿里云能够为你的业务带来哪些帮助 &nbsp; &nbsp; 相关的阿里云产品:云服务器ECS 云服务器 ECS(Elastic Compute Service)是一种弹性可伸缩的计算服务,助您降低 IT 成本,提升运维效率,使您更专注于核心业务创新。产品详情: https://www.aliyun.com/product/ecs
相关文章
|
1月前
|
Java 调度 Maven
【分布式任务调度平台 XXL-JOB 急速入门】从零开始将 XXL-JOB 接入到自己的项目(下)
【分布式任务调度平台 XXL-JOB 急速入门】从零开始将 XXL-JOB 接入到自己的项目(下)
154 0
|
1月前
|
SQL 负载均衡 监控
【分布式任务调度平台 XXL-JOB 急速入门】从零开始将 XXL-JOB 接入到自己的项目(上)
【分布式任务调度平台 XXL-JOB 急速入门】从零开始将 XXL-JOB 接入到自己的项目
137 0
|
10月前
|
消息中间件 Dubbo 应用服务中间件
Apache Dubbo 和 Apache RocketMQ 邀您参与,ASF 亚洲峰会 5 张门票免费送
Apache Dubbo 和 Apache RocketMQ 邀您参与,ASF 亚洲峰会 5 张门票免费送
|
9月前
|
前端开发 Java 测试技术
靠这份SpringBoot实战手册搭建企业级商城项目,斩获京东offer!
为什么会越来越流行SpringBoot? Spring Boot已经成为企业招聘需求的重要部分了。这也使得Spring Boot成为Java开发人员必备的技术栈。无论应届毕业生还是有经验的Java开发人员,Spring Boot技术栈及相关项目经验都已经成为他们简历中的必要元素
57 0
|
11月前
|
算法 调度 微服务
【黑马头条】day20—xxl-job(三)
【黑马头条】day20—xxl-job(三)
113 0
|
11月前
|
运维 监控 NoSQL
【黑马头条】day20—xxl-job(一)
【黑马头条】day20—xxl-job
193 0
|
达摩院
【2023届秋招启动】阿里巴巴达摩院语音实验室欢迎各位应届同学们投递简历至speech-jobs@list.alibaba-inc.com,期盼你的加入!
【2023届秋招启动】阿里巴巴达摩院语音实验室欢迎各位应届同学们投递简历至speech-jobs@list.alibaba-inc.com,期盼你的加入!
|
消息中间件 JavaScript 小程序
xxl-job惊艳的设计,怎能叫人不爱
xxl-job惊艳的设计,怎能叫人不爱
|
消息中间件 缓存 JavaScript
魔改xxl-job,彻底告别手动配置任务!
魔改xxl-job,彻底告别手动配置任务!
|
域名解析 缓存 负载均衡
原来XXL-JOB可以这么造
简要讲述基于Serverless应用引擎SAE(Serverless App Engine)的XXL-JOB零改造迁移
原来XXL-JOB可以这么造