ElasticJob-Lite 3.x 集成springBoot 实战 (一次性作业、定时作业)

news2025/1/12 23:08:21

文章目录

  • 前言
      • ElasticJob-Lite 3.x 集成springBoot 实战 (一次性作业、定时作业)
        • 1. ElasticJob简介
        • 2. ElasticJob-Lite 是什么
        • 3. 功能列表
        • 4. 所需依赖包
        • 5. 定时作业配置
          • 5.1. 作业:
          • 5.2. yml配置:
          • 5.3. 测试
        • 6. 一次性任务配置、并手动触发
          • 6.1. 作业:
          • 6.2. yml配置:
          • 6.3. 测试
        • 7. 其他
          • 7.1. Zookeeper命令查看elasticjob注册的信息
          • 7.2. 如果注册发生未知错误,如何清理elasticjob在zookeeper上注册的命令空间

前言

  如果您觉得有用的话,记得给博主点个赞,评论,收藏一键三连啊,写作不易啊^ _ ^。
  而且听说点赞的人每天的运气都不会太差,实在白嫖的话,那欢迎常来啊!!!


ElasticJob-Lite 3.x 集成springBoot 实战 (一次性作业、定时作业)

1. ElasticJob简介

使用 ElasticJob 能够让开发工程师不再担心任务的线性吞吐量提升等非功能需求,使他们能够更加专注于面向业务编码设计; 同时,它也能够解放运维工程师,使他们不必再担心任务的可用性和相关管理需求,只通过轻松的增加服务节点即可达到自动化运维的目的。

2. ElasticJob-Lite 是什么

定位为轻量级无中心化解决方案,使用 jar 的形式提供分布式任务的协调服务。
在这里插入图片描述

3. 功能列表

弹性调度:

  1. 支持任务在分布式场景下的分片和高可用
  2. 能够水平扩展任务的吞吐量和执行效率
  3. 任务处理能力随资源配备弹性伸缩

资源分配:

  1. 在适合的时间将适合的资源分配给任务并使其生效
  2. 相同任务聚合至相同的执行器统一处理
  3. 动态调配追加资源至新分配的任务

作业治理:

  1. 失效转移
  2. 错过作业重新执行
  3. 自诊断修复

作业依赖(TODO):

  1. 基于有向无环图(DAG)的作业间依赖
  2. 基于有向无环图(DAG)的作业分片间依赖

作业开放生态:

  1. 可扩展的作业类型统一接口
  2. 丰富的作业类型库,如数据流、脚本、HTTP、文件、大数据等
  3. 易于对接业务作业,能够与 Spring 依赖注入无缝整合

可视化管控端:

  1. 作业管控端
  2. 作业执行历史数据追踪
  3. 注册中心管理

4. 所需依赖包

        <dependency>
            <groupId>org.apache.shardingsphere.elasticjob</groupId>
            <artifactId>elasticjob-lite-spring-boot-starter</artifactId>
            <version>3.0.1</version>
        </dependency>
        <dependency>
            <groupId>org.apache.shardingsphere.elasticjob</groupId>
            <artifactId>elasticjob-error-handler-wechat</artifactId>
            <version>3.0.1</version>
        </dependency>
        <dependency>
            <groupId>org.codehaus.groovy</groupId>
            <artifactId>groovy-all</artifactId>
        <version>2.4.15</version>
            

其中:

        <dependency>
            <groupId>org.apache.shardingsphere.elasticjob</groupId>
            <artifactId>elasticjob-error-handler-wechat</artifactId>
            <version>3.0.1</version>
        </dependency>

这个是配置企业微信通知策略 ,即当作业抛异常时,发送企业微信消息通知,但不中断作业执行。

5. 定时作业配置

5.1. 作业:
package org.example.jobs;

import lombok.extern.slf4j.Slf4j;
import org.apache.shardingsphere.elasticjob.api.ShardingContext;
import org.apache.shardingsphere.elasticjob.simple.job.SimpleJob;
import org.quartz.DisallowConcurrentExecution;
import org.springframework.stereotype.Component;

/**
 * @author yangzhenyu
 * @version 1.0
 * @description:
 * @date 2023/4/26 14:33
 */
@Slf4j
@Component
@DisallowConcurrentExecution
public class TestJobMany implements SimpleJob {
    @Override
    public void execute(ShardingContext context) {
        //作业名称
        String jobName = context.getJobName();
        //分片序列号
        int shardingItem = context.getShardingItem();
        //分片序列号对应的value值
        String shardingParameter = context.getShardingParameter();
        //作业分片总数
        int jobNameshardingTotalCount = context.getShardingTotalCount();
        log.info("{} begin, 作业分片总数: {}, 分片序列号: {},分片序列号对应的value值:{}",  jobName,jobNameshardingTotalCount, shardingItem,shardingParameter);

    }
}

5.2. yml配置:
elasticjob:
  regCenter:
    # 连接Zookeeper服务器的列表,包括IP地址和端口号,多个地址用逗号分隔
    serverLists: 127.0.0.1:2181
    # Zookeeper的命名空间
    namespace: yzy
    # 等待重试的间隔时间的初始值   单位:毫秒
    base-sleep-time-milliseconds: 10000
    # 等待重试的间隔时间的最大值
    max-sleep-time-milliseconds: 30000
    # 最大重试次数
    max-retries: 3
    # 会话超时时间 单位: 毫秒
    session-timeout-milliseconds: 600000
    # 连接超时时间 单位: 毫秒
    connection-timeout-milliseconds: 600000
    # elasticjob.jobs 是一个 Map,
    # key 为作业名称,value 为作业类型与配置。
    # Starter 会根据该配置自动创建 OneOffJobBootstrap 或 ScheduleJobBootstrap 的实例
    # 并注册到 Spring 容器中。
  jobs:
    TestJobMany:
      # elasticJobClass 与 elasticJobType 互斥,每项作业只能有一种类型
      elasticJobClass: org.example.jobs.TestJobMany
      # 作业分片总数
      shardingTotalCount: 20
      # 错误处理策略:记录日志策略、记录作业异常日志,但不中断作业执行
      # LOG : 记录日志策略、记录作业异常日志,但不中断作业执行
      # THROW : 抛出异常策略	抛出系统异常并中断作业执行
      # IGNORE : 忽略异常策略	忽略系统异常且不中断作业执行
      # WECHAT : 企业微信通知策略	发送企业微信消息通知,但不中断作业执行
      jobErrorHandlerType: LOG
      cron: 0/5 * * * * ?
      # 作业线程池处理策略
      jobExecutorServiceHandlerType: "SINGLE_THREAD"
      # 本地配置是否可覆盖注册中心配置 , 如果可覆盖,每次启动作业都以本地配置为准
      overwrite: true
      # 是否开启错过任务重新执行
      misfire: true
      #是否开启任务执行失效转移,开启表示如果作业在一次任务执行中途宕机,允许将该次未完成的任务在另一作业节点上补偿执行
      failover: true

如果:jobErrorHandlerType选择WECHAT
那么配置如下:

# Job 配置
elasticjob:
  regCenter:
    # 连接Zookeeper服务器的列表,包括IP地址和端口号,多个地址用逗号分隔
    serverLists: 127.0.0.1:2181
    # Zookeeper的命名空间
    namespace: yzy
    # 等待重试的间隔时间的初始值   单位:毫秒
    base-sleep-time-milliseconds: 10000
    # 等待重试的间隔时间的最大值
    max-sleep-time-milliseconds: 30000
    # 最大重试次数
    max-retries: 3
    # 会话超时时间 单位: 毫秒
    session-timeout-milliseconds: 600000
    # 连接超时时间 单位: 毫秒
    connection-timeout-milliseconds: 600000
  props:
    wechat:
      # 企业微信机器人的 webhook 地址
      webhook: xxxxxx
      # 与企业微信服务器建立连接的超时时间
      connectTimeout: 3000
      # 从企业微信服务器读取到可用资源的超时时间
      readTimeout: 5000
  # elasticjob.jobs 是一个 Map,
  # key 为作业名称,value 为作业类型与配置。
  # Starter 会根据该配置自动创建 OneOffJobBootstrap 或 ScheduleJobBootstrap 的实例
  # 并注册到 Spring 容器中。
  jobs:
    TestJobMany:
      # elasticJobClass 与 elasticJobType 互斥,每项作业只能有一种类型
      elasticJobClass: org.example.jobs.TestJobMany
      # 作业分片总数
      shardingTotalCount: 20
      # 错误处理策略:记录日志策略、记录作业异常日志,但不中断作业执行
      # LOG : 记录日志策略、记录作业异常日志,但不中断作业执行
      # THROW : 抛出异常策略	抛出系统异常并中断作业执行
      # IGNORE : 忽略异常策略	忽略系统异常且不中断作业执行
      # WECHAT : 企业微信通知策略	发送企业微信消息通知,但不中断作业执行
      jobErrorHandlerType: WECHAT 
      cron: 0/5 * * * * ?
      # 作业线程池处理策略
      jobExecutorServiceHandlerType: "SINGLE_THREAD"
      # 本地配置是否可覆盖注册中心配置 , 如果可覆盖,每次启动作业都以本地配置为准
      overwrite: true
      # 是否开启错过任务重新执行
      misfire: true
      #是否开启任务执行失效转移,开启表示如果作业在一次任务执行中途宕机,允许将该次未完成的任务在另一作业节点上补偿执行
      failover: true

5.3. 测试

在这里插入图片描述

6. 一次性任务配置、并手动触发

6.1. 作业:
package org.example.jobs;

import lombok.extern.slf4j.Slf4j;
import org.apache.shardingsphere.elasticjob.api.ShardingContext;
import org.apache.shardingsphere.elasticjob.simple.job.SimpleJob;
import org.example.entity.TestData;
import org.quartz.DisallowConcurrentExecution;
import org.springframework.stereotype.Component;

/**
 * @author yangzhenyu
 * @version 1.0
 * @description:
 * @date 2023/4/26 14:33
 */
@Slf4j
@Component
@DisallowConcurrentExecution
public class TestJobOne implements SimpleJob {
    @Override
    public void execute(ShardingContext context) {
        //作业名称
        String jobName = context.getJobName();
        //分片序列号
        int shardingItem = context.getShardingItem();
        //分片序列号对应的value值
        String shardingParameter = context.getShardingParameter();
        //作业分片总数
        int jobNameshardingTotalCount = context.getShardingTotalCount();
        log.info("{} begin, 作业分片总数: {}, 分片序列号: {},分片序列号对应的value值:{}",  jobName,jobNameshardingTotalCount, shardingItem,shardingParameter);


    }
}

6.2. yml配置:
# Job 配置
elasticjob:
  regCenter:
    # 连接Zookeeper服务器的列表,包括IP地址和端口号,多个地址用逗号分隔
    serverLists: 127.0.0.1:2181
    # Zookeeper的命名空间
    namespace: yzy
    # 等待重试的间隔时间的初始值   单位:毫秒
    base-sleep-time-milliseconds: 10000
    # 等待重试的间隔时间的最大值
    max-sleep-time-milliseconds: 30000
    # 最大重试次数
    max-retries: 3
    # 会话超时时间 单位: 毫秒
    session-timeout-milliseconds: 600000
    # 连接超时时间 单位: 毫秒
    connection-timeout-milliseconds: 600000
  props:
    wechat:
      # 企业微信机器人的 webhook 地址
      webhook: xxxxxx
      # 与企业微信服务器建立连接的超时时间
      connectTimeout: 3000
      # 从企业微信服务器读取到可用资源的超时时间
      readTimeout: 5000
  # elasticjob.jobs 是一个 Map,
  # key 为作业名称,value 为作业类型与配置。
  # Starter 会根据该配置自动创建 OneOffJobBootstrap 或 ScheduleJobBootstrap 的实例
  # 并注册到 Spring 容器中。
  jobs:
    # 如果配置了 cron 属性则为定时调度作业,Starter 会在应用启动时自动启动; 否则为一次性调度作业,
    # 需要通过 jobBootstrapBeanName 指定 OneOffJobBootstrap Bean 的名称,
    # 在触发点注入 OneOffJobBootstrap 的实例并手动调用 execute() 方法。
    myOneOffJob:
      jobBootstrapBeanName: myOneOffJob
      # elasticJobClass 与 elasticJobType 互斥,每项作业只能有一种类型
      elasticJobClass: org.example.jobs.TestJobOne
      # 作业分片总数
      shardingTotalCount: 20
      # 错误处理策略:记录日志策略、记录作业异常日志,但不中断作业执行
      # LOG : 记录日志策略、记录作业异常日志,但不中断作业执行
      # THROW : 抛出异常策略	抛出系统异常并中断作业执行
      # IGNORE : 忽略异常策略	忽略系统异常且不中断作业执行
      # WECHAT : 企业微信通知策略	发送企业微信消息通知,但不中断作业执行
      jobErrorHandlerType: LOG
      # 作业线程池处理策略
      jobExecutorServiceHandlerType: "SINGLE_THREAD"
      # 分片序列号和参数用等号分隔,多个键值对用逗号分隔
      # 分片序列号从0开始,不可大于或等于作业分片总数
      shardingItemParameters: 0=Beijing,1=Shanghai,2=Guangzhou
      # 本地配置是否可覆盖注册中心配置 , 如果可覆盖,每次启动作业都以本地配置为准
      overwrite: true
      # 是否开启错过任务重新执行
      misfire: true
      #是否开启任务执行失效转移,开启表示如果作业在一次任务执行中途宕机,允许将该次未完成的任务在另一作业节点上补偿执行
      failover: true
6.3. 测试

controller调用代码:

    @GetMapping("/execute")
    public String executeOneOffJob() {
        OneOffJobBootstrap myOneOffJob = SpringUtil.getBean("myOneOffJob");
        myOneOffJob.execute();
        return "success";
    }

执行:
在这里插入图片描述
在这里插入图片描述

7. 其他

7.1. Zookeeper命令查看elasticjob注册的信息

查看作业空间:
yml全配置:

# Job 配置
elasticjob:
  regCenter:
    # 连接Zookeeper服务器的列表,包括IP地址和端口号,多个地址用逗号分隔
    serverLists: 127.0.0.1:2181
    # Zookeeper的命名空间
    namespace: yzy
    # 等待重试的间隔时间的初始值   单位:毫秒
    base-sleep-time-milliseconds: 10000
    # 等待重试的间隔时间的最大值
    max-sleep-time-milliseconds: 30000
    # 最大重试次数
    max-retries: 3
    # 会话超时时间 单位: 毫秒
    session-timeout-milliseconds: 600000
    # 连接超时时间 单位: 毫秒
    connection-timeout-milliseconds: 600000
  props:
    wechat:
      # 企业微信机器人的 webhook 地址
      webhook: xxxxxx
      # 与企业微信服务器建立连接的超时时间
      connectTimeout: 3000
      # 从企业微信服务器读取到可用资源的超时时间
      readTimeout: 5000
  # elasticjob.jobs 是一个 Map,
  # key 为作业名称,value 为作业类型与配置。
  # Starter 会根据该配置自动创建 OneOffJobBootstrap 或 ScheduleJobBootstrap 的实例
  # 并注册到 Spring 容器中。
  jobs:
    TestJobMany:
      # elasticJobClass 与 elasticJobType 互斥,每项作业只能有一种类型
      elasticJobClass: org.example.jobs.TestJobMany
      # 作业分片总数
      shardingTotalCount: 20
      # 错误处理策略:记录日志策略、记录作业异常日志,但不中断作业执行
      # LOG : 记录日志策略、记录作业异常日志,但不中断作业执行
      # THROW : 抛出异常策略	抛出系统异常并中断作业执行
      # IGNORE : 忽略异常策略	忽略系统异常且不中断作业执行
      # WECHAT : 企业微信通知策略	发送企业微信消息通知,但不中断作业执行
      jobErrorHandlerType: LOG
      cron: 0/5 * * * * ?
      # 作业线程池处理策略
      jobExecutorServiceHandlerType: "SINGLE_THREAD"
      # 本地配置是否可覆盖注册中心配置 , 如果可覆盖,每次启动作业都以本地配置为准
      overwrite: true
      # 是否开启错过任务重新执行
      misfire: true
      #是否开启任务执行失效转移,开启表示如果作业在一次任务执行中途宕机,允许将该次未完成的任务在另一作业节点上补偿执行
      failover: true
    # 如果配置了 cron 属性则为定时调度作业,Starter 会在应用启动时自动启动; 否则为一次性调度作业,
    # 需要通过 jobBootstrapBeanName 指定 OneOffJobBootstrap Bean 的名称,
    # 在触发点注入 OneOffJobBootstrap 的实例并手动调用 execute() 方法。
    myOneOffJob:
      jobBootstrapBeanName: myOneOffJob
      # elasticJobClass 与 elasticJobType 互斥,每项作业只能有一种类型
      elasticJobClass: org.example.jobs.TestJobOne
      # 作业分片总数
      shardingTotalCount: 20
      # 错误处理策略:记录日志策略、记录作业异常日志,但不中断作业执行
      # LOG : 记录日志策略、记录作业异常日志,但不中断作业执行
      # THROW : 抛出异常策略	抛出系统异常并中断作业执行
      # IGNORE : 忽略异常策略	忽略系统异常且不中断作业执行
      # WECHAT : 企业微信通知策略	发送企业微信消息通知,但不中断作业执行
      jobErrorHandlerType: LOG
      # 作业线程池处理策略
      jobExecutorServiceHandlerType: "SINGLE_THREAD"
      # 分片序列号和参数用等号分隔,多个键值对用逗号分隔
      # 分片序列号从0开始,不可大于或等于作业分片总数
      shardingItemParameters: 0=Beijing,1=Shanghai,2=Guangzhou
      # 本地配置是否可覆盖注册中心配置 , 如果可覆盖,每次启动作业都以本地配置为准
      overwrite: true
      # 是否开启错过任务重新执行
      misfire: true
      #是否开启任务执行失效转移,开启表示如果作业在一次任务执行中途宕机,允许将该次未完成的任务在另一作业节点上补偿执行
      failover: true

Zookeeper 查询:
ls /
在这里插入图片描述
查看注册作业:
在这里插入图片描述
其中 TestJobMany 是我们注册的定时任务、myOneOffJob 是我们注册的一次性任务

查看分片数:
ls /yzy/TestJobMany/sharding
在这里插入图片描述
ls /yzy/myOneOffJob/sharding
在这里插入图片描述

7.2. 如果注册发生未知错误,如何清理elasticjob在zookeeper上注册的命令空间

清除我们elasticjob在zookeeper上注册的命令空间
deleteall /yzy
其中yzy是你注册的命名空间
在这里插入图片描述
查看:
在这里插入图片描述
清除成功,然后重新启动服务,重新注册即可。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/468334.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

洞见数字时代的创新原力,数云原力大会暨2023TECH第五届数字中国技术年会开幕

4月25日&#xff0c;神州控股、神州信息、神州数码集团共同主办的数云原力大会暨2023TECH第五届数字中国技术年会开幕。开幕式上&#xff0c;数百位投身并关注数字技术、数字产业发展的学者、技术专家、从业者、行业用户齐聚一堂&#xff0c;围绕云原生、数字原生、大数据、金融…

2.龙芯2k1000 linux3.10内核编译过程

龙芯2k1000 linux3.10内核编译过程 文章目录 龙芯2k1000 linux3.10内核编译过程&#xff08;一&#xff09;、在Ubuntu环境下载并配置交叉编译链&#xff08;二&#xff09;、下载linux3.10内核源码&#xff08;三&#xff09;、使用menuconfig配置内核&#xff08;四&#xff…

【react从入门到精通】深入理解react生命周期这一篇就够了

文章目录 前言React的生命周期是什么React v16.0前的生命周期组件初始化(initialization)阶段组件挂载(Mounting)阶段组件更新(update)阶段组件销毁阶段 React v16.4 的生命周期总结写在最后 前言 在上一篇文章《react入门这一篇就够了》中我们已经掌握了React的基本知识。通过…

XXE原理利用防御

XXE原理利用防御 一、XML定义 1、定义 XML用于标记电子文件使其具有结构性的标记语言&#xff0c;可以用来标记数据、定义数据类型&#xff0c;是一种允许用户对自己的标记语言进行定义的源语言。 2、原因 应用程序解析XML时&#xff0c;没有过滤外部实体的加载&#xff0…

多用户商城平台开发需要注意哪些问题?

电子商务的快速发展&#xff0c;越来越多的企业选择借助第三方商城软件开设自己的多用户商城平台&#xff0c;以此来帮助他们增加销售额和提高品牌知名度&#xff0c;如目前市面上常见的shop、shopnc等第三方商城软件。但是&#xff0c;多用户商城平台的开发并不是一件容易的事…

QFIELD-GIS工具版如何编辑数据

一、 简介 在现场进行GIS数据对比、采集、编辑是移动GIS App的一项非常实用的功能。能够使用户更加及时准确的收集到第一手资料&#xff0c;并在现场第一时间进行编辑和完善。同时配合遥感、GPS或移动设备自带各类传感器&#xff0c;再辅助以其它矢量参考数据可以对已有成果…

如何利用社交媒体来做Etsy店铺推广?

利用社交媒体是 Etsy 店铺推广的重要一环。通过创作优秀的社交媒体内容、定期发布内容、与关注者互动和利用广告&#xff0c;你可以吸引更多的潜在客户&#xff0c;增加你的店铺销售量和品牌影响力。以下是详细说明如何利用社交媒体来做店铺推广&#xff1a; 选择适合的社交媒体…

FinClip 现已支持云开发

在开发一个小程序时&#xff0c;除了考虑界面功能逻辑外&#xff0c;还需要后端的数据支持&#xff0c;开发者需要提前考虑服务器、存储和数据库等相关需求的支持能力&#xff0c;此外还可能需要花费时间精力在部署应用、和依赖服务的建设上。 因此&#xff0c;腾讯小程序为了实…

NetMQ | 实现TCP的发布订阅模式

NetMQ | 实现TCP的发布订阅模式 文章目录 NetMQ | 实现TCP的发布订阅模式前言什么是发布订阅模式&#xff1f;实现步骤步骤1&#xff1a;创建Publisher和Subscriber步骤2&#xff1a;绑定和连接步骤3&#xff1a;添加订阅步骤4&#xff1a;发布消息步骤5&#xff1a;接收消息 示…

构建一体化数字营销平台,助力医药企业实现销售转化能级大幅跃迁 | 案例研究

今日分享的案例企业成立于1994年&#xff0c;主要从事心血管、消化领域的药品生产、加工、分装和销售&#xff0c;其中心血管相关药品广泛畅销至世界很多个国家。目前&#xff0c;该医药公司销售网络遍及全国80余个城市&#xff0c;以专业人员组成的营业队伍&#xff0c;致力于…

【Linux系统安装Python3 --- 思路清晰的五大步】

水善利万物而不争&#xff0c;处众人之所恶&#xff0c;故几于道&#x1f4a6; 目录 一、检查Python版本 二、下载源码包 三、解压编译源码 四、安装Python 五、调整系统默认Python指向 一、检查Python版本 1.直接进入python命令行查看python版本 python 2.列出系统上所…

[Android 模块化配置实践] Java + Gradle7配置模块化实践记录

文章目录 1.项目配置及环境2.项目工程结构3.Project下的系列设置自定义config.gradlesetting.gradlebuild.gradle(:project) 添加modulemodule_common下的build.gradle配置遇到的报错一遇到的报错二 applicationId问题 module_xxx下的build.gradle示例 由于目前刚开始学习模块化…

【vxe-table】自定义表头列是否可以排序

vxe-table真是让人又爱又恨&#xff0c;官网示例还有文档都很详细&#xff0c;但是可能是用的人少&#xff0c;每次遇到问题&#xff0c;都百度不到啥解决方法&#xff0c;不像el-table,全是方法 今天给我提了个bug&#xff0c;vxe-table要支持指定列排序&#xff0c;意思就是…

如何用3D人脸扫描设备制作虚拟数字人?

在海心沙元宇宙音乐会上&#xff0c;虚拟数字人“杜杜”与真人主持杜雨轩老师同台主持&#xff0c;带领现场观众感受虚实融合的音乐世界。 其实虚拟数字人“杜杜”是使用了数字人复刻技术&#xff0c;以真人主持杜雨轩老师1&#xff1a;1复刻的。在模型制作上不同于往常的美型数…

springboot整合flowable工作流引擎的简单使用

内容来自网络整理&#xff0c;文章最下有引用地址&#xff0c;可跳转至相关资源页面。若有侵权请联系删除 环境&#xff1a; mysql5.7.2 springboot 2.3.9.RELEASE flowable 6.7.2 采坑&#xff1a; 1.当前flowable sql需要与引用的pom依赖一致&#xff0c;否则会报library…

【chapter29】【PyTorch】[Regularization】

前言&#xff1a; 前面讲了Overfitted,这里重点讲解一下如何防止 Overfitting ,以及其中的方案之一 Regularization 模型的参数量,模型的表达能力远超模型本身复杂度. 与之对应的是奥卡姆剃刀原理&#xff1a; 如何用最简单的方法得到最好的效果 找到关键的部分&#xff0c;简…

【SWAT水文模型】SWAT水文模型建立及应用第三期:土壤库建立(待更新)

SWAT水文模型建立及应用&#xff1a;土壤库建立 1 简介2 土壤数据下载2.1 数据下载方式2.1.1 世界土壤数据库HWSD数据2.1.2 中国土壤数据库 2.2 数据下载 3 土壤数据的准备3.1 SWAT土壤数据库参数3.2 土壤质地转化3.3 土壤参数的提取3.4 其他变量的提取3.5 土壤类型分布图的处理…

回顾 | Pre VS Code Day - 用 GitHub Codespaces 构建 OpenAI 应用实战

编辑&#xff1a;Alan Wang 排版&#xff1a;Rani Sun 微软 Reactor 为帮助广开发者&#xff0c;技术爱好者&#xff0c;更好的学习 .NET Core, C#, Python&#xff0c;数据科学&#xff0c;机器学习&#xff0c;AI&#xff0c;区块链, IoT 等技术&#xff0c;将每周三到周六&a…

85.qt qml-炫酷烟花粒子特效(支持多种爆炸模式、爆炸阴影、背景场景)

效果如下所示: 截图如下所示: 实现内容如下所示: 1.实现多个爆炸效果2.爆炸的时候增加光度阴影效果3.由于场景有湖面,所以还需要增加一个倒影粒子组首先我们来学习下,该示例中所需要常用的类型点 1.如何更改粒子生命周期时的颜色变换动画 方法有两种。 1.1通过colorTable和si…

详谈Android进程间的大数据通信机制:LocalSocket

前言 说起Android进行间通信&#xff0c;大家第一时间会想到AIDL&#xff0c;但是由于Binder机制的限制&#xff0c;AIDL无法传输超大数据。 比如我们在之前文章《WebRtc中是如何处理视频数据的&#xff1f;》提到的我们可以得到WebRtc的视频数据&#xff0c;这时候我们如果有…