一、简介

1.1 概述

XXL-JOB是一个轻量级分布式任务调度框架,其核心设计目标是开发迅速、学习简单、轻量级、易扩展。现已开放源代码并接入多家公司线上产品线,开箱即用。

1.2 特性

  • 1、简单:支持通过Web页面对任务进行CRUD操作,操作简单,一分钟上手;
  • 2、动态:支持动态修改任务状态、暂停/恢复任务,以及终止运行中任务,即时生效;
  • 3、调度中心HA(中心式):调度采用中心式设计,调度中心基于集群Quartz实现,可保证调度中心HA
  • 4、执行器HA(分布式):任务分布式执行,任务"执行器"支持集群部署,可保证任务执行HA
  • 5、任务Failover:执行器集群部署时,任务路由策略选择"故障转移"情况下调度失败时将会平滑切换执行器进行Failover
  • 6、一致性:调度中心通过DB锁保证集群分布式调度的一致性, 一次任务调度只会触发一次执行;
  • 7、自定义任务参数:支持在线配置调度任务入参,即时生效;
  • 8、调度线程池:调度系统多线程触发调度运行,确保调度精确执行,不被堵塞;
  • 9、弹性扩容缩容:一旦有新执行器机器上线或者下线,下次调度时将会重新分配任务;
  • 10、邮件报警:任务失败时支持邮件报警,支持配置多邮件地址群发报警邮件;
  • 11、状态监控:支持实时监控任务进度;
  • 12Rolling执行日志:支持在线查看调度结果,并且支持以Rolling方式实时查看执行器输出的完整的执行日志;
  • 13GLUE:提供Web IDE,支持在线开发任务逻辑代码,动态发布,实时编译生效,省略部署上线的过程。支持30个版本的历史版本回溯。
  • 14、数据加密:调度中心和执行器之间的通讯进行数据加密,提升调度信息安全性;
  • 15、任务依赖:支持配置子任务依赖,当父任务执行结束且执行成功后将会主动触发一次子任务的执行, 多个子任务用逗号分隔;
  • 16、推送maven中央仓库: 将会把最新稳定版推送到maven中央仓库, 方便用户接入和使用;
  • 17、任务注册: 执行器会周期性自动注册任务, 调度中心将会自动发现注册的任务并触发执行。同时,也支持手动录入执行器地址;
  • 18、路由策略:执行器集群部署时提供丰富的路由策略,包括:第一个、最后一个、轮询、随机、一致性HASH、最不经常使用、最近最久未使用、故障转移、忙碌转移等;
  • 19、运行报表:支持实时查看运行数据,如任务数量、调度次数、执行器数量等;以及调度报表,如调度日期分布图,调度成功分布图等;
  • 20、脚本任务:支持以GLUE模式开发和运行脚本任务,包括ShellPython等类型脚本;
  • 21、阻塞处理策略:调度过于密集执行器来不及处理时的处理策略,策略包括:单机串行(默认)、丢弃后续调度、覆盖之前调度;
  • 22、失败处理策略;调度失败时的处理策略,策略包括:失败告警(默认)、失败重试;
  • 23、分片广播任务:执行器集群部署时,任务路由策略选择"分片广播"情况下,一次任务调度将会广播触发集群中所有执行器执行一次任务,可根据分片参数开发分片任务;
  • 24、动态分片:分片广播任务以执行器为维度进行分片,支持动态扩容执行器集群从而动态增加分片数量,协同进行业务处理;在进行大数据量业务操作时可显著提升任务处理能力和速度。
  • 25、事件触发:除了"Cron方式""任务依赖方式"触发任务执行之外,支持基于事件的触发任务方式。调度中心提供触发任务单次执行的API服务,可根据业务事件灵活触发。

1.3 发展

2015年中,我在github上创建XXL-JOB项目仓库并提交第一个commit,随之进行系统结构设计,UI选型,交互设计……

2015-11月,XXL-JOB终于RELEASE了第一个大版本V1.0 随后我将之发布到OSCHINAXXL-JOBOSCHINA上获得了@红薯的热门推荐,同期分别达到了OSCHINA热门动弹排行第一和git.oschina的开源软件月热度排行第一,在此特别感谢红薯,感谢大家的关注和支持。

2015-12月,我将XXL-JOB发表到我司内部知识库,并且得到内部同事认可。

2016-01月,我司展开XXL-JOB的内部接入和定制工作,在此感谢袁某和尹某两位同事的贡献,同时也感谢内部其他给与关注与支持的同事。

2017-05-13,在上海举办的 "第62期开源中国源创会" "放码过来" 环节,我登台对XXL-JOB做了演讲,台下五百位在场观众反响热烈(图文回顾 )。

我司大众点评目前已接入XXL-JOB,内部别名《Ferrari》(Ferrari基于XXL-JOBV1.1版本定制而成,新接入应用推荐升级最新版本)。 据最新统计, 2016-01-21接入至2017-07-07期间,该系统已调度约60万余次,表现优异。新接入应用推荐使用最新版本,因为经过数个大版本的更新,系统的任务模型、UI交互模型以及底层调度通讯模型都有了较大的优化和提升,核心功能更加稳定高效。

至今,XXL-JOB已接入多家公司的线上产品线,接入场景如电商业务,O2O业务和大数据作业等,截止2016-07-19为止,XXL-JOB已接入的公司包括不限于:

- 1、大众点评;

- 2、山东学而网络科技有限公司;

- 3、安徽慧通互联科技有限公司;

- 4、人人聚财金服;

- 5、上海棠棣信息科技股份有限公司

- 6、运满满

- 7、米其林 (中国区)

- 8、妈妈联盟

- 9、九樱天下(北京)信息技术有限公司

- 10、万普拉斯科技有限公司(一加手机)

- 11、上海亿保健康管理有限公司

- 12、海尔馨厨 (海尔)

- 13、河南大红包电子商务有限公司

- 14、成都顺点科技有限公司

- 15、深圳市怡亚通

- 16、深圳麦亚信科技股份有限公司

- 17、上海博莹科技信息技术有限公司

- 18、中国平安科技有限公司

- 19、杭州知时信息科技有限公司

- 20、博莹科技(上海)有限公司

- 21、成都依能股份有限责任公司

- 22、湖南高阳通联信息技术有限公司

- 23、深圳市邦德文化发展有限公司

- 24、福建阿思可网络教育有限公司

- 25、优信二手车

- 26、上海悠游堂投资发展股份有限公司

- 27、北京粉笔蓝天科技有限公司

- 28、中秀科技(无锡)有限公司

- 29、武汉空心科技有限公司

- 30、北京蚂蚁风暴科技有限公司

- 31、四川互宜达科技有限公司

- 32、钱包行云(北京)科技有限公司

- 33、重庆欣才集团

- 34、咪咕互动娱乐有限公司(中国移动)

- 35、北京诺亦腾科技有限公司

- 36、增长引擎(北京)信息技术有限公司

- 37、北京英贝思科技有限公司

- 38、刚泰集团

- 39、深圳泰久信息系统股份有限公司

- 40、随行付支付有限公司

- 41、广州瀚农网络科技有限公司

- 42、享点科技有限公司

- 43、杭州比智科技有限公司

- 44、圳临界线网络科技有限公司

- 45、广州知识圈网络科技有限公司

- 46、国誉商业上海有限公司

- 47、海尔消费金融有限公司,嗨付、够花 (海尔)

- ……

更多接入的公司,欢迎在 登记地址 登记,登记仅仅为了产品推广。

欢迎大家的关注和使用,XXL-JOB也将拥抱变化,持续发展。

1.4 下载

文档地址

  • 中文文档
  • English Documentation

源码仓库地址

源码仓库地址

Release Download

https://github.com/xuxueli/xxl-job

Download

http://git.oschina.net/xuxueli0323/xxl-job

Download

中央仓库地址

<!-- http://repo1.maven.org/maven2/com/xuxueli/xxl-job-core/ -->

<dependency>

    <groupId>com.xuxueli</groupId>

    <artifactId>xxl-job-core</artifactId>

    <version>1.8.2</version>

</dependency>

技术交流

  • 社区交流
  • Gitter

1.5 环境

  • JDK1.7+
  • Servlet/JSP Spec3.1/2.3
  • Tomcat8.5.x/Jetty9.2.x
  • Spring-boot1.5.x/Spring4.x
  • Mysql5.6+
  • Maven3+

二、快速入门

2.1 初始化调度数据库

请下载项目源码并解压,获取 "调度数据库初始化SQL脚本" 并执行即可,正常情况下应该生成16张表。

"调度数据库初始化SQL脚本" 位置为:

/xxl-job/doc/db/tables_xxl_job.sql

调度中心支持集群部署,集群情况下各节点务必连接同一个mysql实例;

如果mysql做主从,调度中心集群节点务必强制走主库;

2.2 编译源码

解压源码,按照maven格式将源码导入IDE, 使用maven进行编译即可,源码结构如下:

xxl-job-admin:调度中心

xxl-job-core:公共依赖

xxl-job-executor:执行器Sample示例(选择合适的版本执行器,可直接使用,也可以参考其并将现有项目改造成执行器)

    xxl-job-executor-sample-springSpring版本,通过Spring容器管理执行器,比较通用,推荐这种方式;

    xxl-job-executor-sample-springbootSpringboot版本,通过Springboot管理执行器;

    xxl-job-executor-sample-jfinalJFinal版本,通过JFinal管理执行器;

2.3 配置部署调度中心

调度中心项目:xxl-job-admin

作用:统一管理任务调度平台上调度任务,负责触发调度执行,并且提供任务管理平台。

步骤一:调度中心配置:

调度中心配置文件地址:

/xxl-job/xxl-job-admin/src/main/resources/xxl-job-admin.properties

调度中心配置内容说明:

### 调度中心JDBC链接:链接地址请保持和 2.1章节 所创建的调度数据库的地址一致

xxl.job.db.driverClass=com.mysql.jdbc.Driver

xxl.job.db.url=jdbc:mysql://localhost:3306/xxl-job?useUnicode=true&characterEncoding=UTF-8

xxl.job.db.user=root

xxl.job.db.password=root_pwd

 

### 报警邮箱

xxl.job.mail.host=smtp.163.com

xxl.job.mail.port=25

xxl.job.mail.username=ovono802302@163.com

xxl.job.mail.password=asdfzxcv

xxl.job.mail.sendFrom=ovono802302@163.com

xxl.job.mail.sendNick=《任务调度平台XXL-JOB

 

### 登录账号

xxl.job.login.username=admin

xxl.job.login.password=123456

 

### 调度中心通讯TOKEN,非空时启用

xxl.job.accessToken=

步骤二:部署项目:

如果已经正确进行上述配置,可将项目编译打war包并部署到tomcat中。 调度中心访问地址:http://localhost:8080/xxl-job-admin (该地址执行器将会使用到,作为回调地址),登录后运行界面如下图所示

 

 

至此调度中心项目已经部署成功。

步骤三:调度中心集群(可选):

调度中心支持集群部署,提升调度系统可用性。

集群部署唯一要求为:保证每个集群节点配置(db和登陆账号等)保持一致。调度中心通过db配置区分不同集群。

调度中心在集群部署时可通过nginx负载均衡,此时可以为集群分配一个域名。该域名一方面可以用于访问,另一方面也可以用于配置执行器回调地址。

2.4 配置部署执行器项目

执行器项目:xxl-job-executor-sample-spring (如新建执行器项目,可参考该Sample示例执行器项目的配置步骤;)

作用:负责接收调度中心的调度并执行;可直接部署执行器,也可以将执行器集成到现有业务项目中。

步骤一:maven依赖

确认pom文件中引入了 "xxl-job-core" maven依赖;

步骤二:执行器配置

执行器配置,配置文件地址:

/xxl-job/xxl-job-executor-samples/xxl-job-executor-sample-spring/src/main/resources/xxl-job-executor.properties

执行器配置,配置内容说明:

### xxl-job admin address list:调度中心部署跟地址:如调度中心集群部署存在多个地址则用逗号分隔。执行器将会使用该地址进行"执行器心跳注册""任务结果回调"

xxl.job.admin.addresses=http://127.0.0.1:8080/xxl-job-admin

 

### xxl-job executor address:执行器"AppName"和地址信息配置:AppName执行器心跳注册分组依据;地址信息用于"调度中心请求并触发任务""执行器注册"。执行器默认端口为9999,执行器IP默认为空表示自动获取IP,多网卡时可手动设置指定IP,手动设置IP时将会绑定Host。单机部署多个执行器时,注意要配置不同执行器端口;

xxl.job.executor.appname=xxl-job-executor-sample

xxl.job.executor.ip=

xxl.job.executor.port=9999

 

### xxl-job log path:执行器运行日志文件存储的磁盘位置,需要对该路径拥有读写权限

xxl.job.executor.logpath=/data/applogs/xxl-job/jobhandler/

 

### xxl-job, access token:执行器通讯TOKEN,非空时启用

xxl.job.accessToken=

步骤三:执行器组件配置

执行器组件,配置文件地址:

/xxl-job/xxl-job-executor-samples/xxl-job-executor-sample-spring/src/main/resources/applicationcontext-xxl-job.xml

执行器组件,配置内容说明:

<!-- 配置01JobHandler 扫描路径:自动扫描容器中JobHandler -->

<context:component-scan base-package="com.xxl.job.executor.service.jobhandler" />

 

<!-- 配置02、执行器Excutor配置:执行器核心配置 -->

<bean id="xxlJobExecutor" class="com.xxl.job.core.executor.XxlJobExecutor" init-method="start" destroy-method="destroy" >

    <!-- 执行器IP[选填],为空则自动获取 -->

    <property name="ip" value="${xxl.job.executor.ip}" />

    <!-- 执行器端口号[必须] -->

    <property name="port" value="${xxl.job.executor.port}" />

    <!-- 执行器AppName[选填],为空则关闭自动注册 -->

    <property name="appName" value="${xxl.job.executor.appname}" />

    <!-- 执行器注册中心地址[选填],为空则关闭自动注册 -->

    <property name="adminAddresses" value="${xxl.job.admin.addresses}" />

    <!-- 执行器日志路径[必填] -->

    <property name="logPath" value="${xxl.job.executor.logpath}" />

    <!-- 访问令牌,非空则进行匹配校验[选填] -->

    <property name="accessToken" value="${xxl.job.accessToken}" />

</bean>

步骤四:部署执行器项目:

如果已经正确进行上述配置,可将执行器项目编译打部署,系统提供三个执行器Sample示例项目,选择其中一个即可,各自的部署方式如下。

xxl-job-executor-sample-spring:项目编译打包成WAR包,并部署到tomcat中。

xxl-job-executor-sample-springboot:项目编译打包成springboot类型的可执行JAR包,命令启动即可;

至此执行器项目已经部署结束。

步骤五:执行器集群(可选):

执行器支持集群部署,提升调度系统可用性,同时提升任务处理能力。

集群部署唯一要求为:保证集群中每个执行器的配置项 "xxl.job.admin.addresses/调度中心地址" 保持一致,执行器根据该配置进行执行器自动注册等操作。

2.5 开发第一个任务“Hello World”

本示例以新建一个 “GLUE模式(Java)” 运行模式的任务为例。更多有关任务的详细配置,请查看章节三:任务详解 “GLUE模式(Java)”的执行代码托管到调度中心在线维护,相比“Bean模式任务需要在执行器项目开发部署上线,更加简便轻量)

前提:请确认调度中心执行器项目已经成功部署并启动;

步骤一:新建任务:

登录调度中心,点击下图所示新建任务按钮,新建示例任务。然后,参考下面截图中任务的参数配置,点击保存。

 

 

步骤二:“GLUE模式(Java)” 任务开发:

请点击任务右侧 “GLUE” 按钮,进入 “GLUE编辑器开发界面,见下图。“GLUE模式(Java)” 运行模式的任务默认已经初始化了示例任务代码,即打印Hello World “GLUE模式(Java)” 运行模式的任务实际上是一段继承自IJobHandlerJava类代码,它在执行器项目中运行,可使用@Resource/@Autowire注入执行器里中的其他服务,详细介绍请查看第三章节)

 

 

步骤三:触发执行:

请点击任务右侧执行按钮,可手动触发一次任务执行(通常情况下,通过配置Cron表达式进行任务调度出发)。

步骤四:查看日志:

请点击任务右侧日志按钮,可前往任务日志界面查看任务日志。 在任务日志界面中,可查看该任务的历史调度记录以及每一次调度的任务调度信息、执行参数和执行信息。运行中的任务点击右侧的执行日志按钮,可进入日志控制台查看实时执行日志。

 

在日志控制台,可以Rolling方式实时查看任务在执行器一侧运行输出的日志信息,实时监控任务进度;

 

三、任务详解

配置属性详细说明:

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

- 描述:任务的描述信息,便于任务管理;

- 路由策略:当执行器集群部署时,提供丰富的路由策略,包括;

    FIRST(第一个):固定选择第一个执行器;

    LAST(最后一个):固定选择最后一个执行器;

    ROUND(轮询):;

    RANDOM(随机):随机选择在线的执行器;

    CONSISTENT_HASH(一致性HASH):分组下机器地址相同,不同JOB均匀散列在不同机器上,保证分组下机器分配JOB平均;且每个JOB固定调度其中一台机器;

    LEAST_FREQUENTLY_USED(最不经常使用):单个JOB对应的每个执行器,使用频率最低的优先被选举;

    LEAST_RECENTLY_USED(最近最久未使用):单个JOB对应的每个执行器,最久为使用的优先被选举;

    FAILOVER(故障转移):按照顺序依次进行心跳检测,第一个心跳检测成功的机器选定为目标执行器并发起调度;

    BUSYOVER(忙碌转移):按照顺序依次进行空闲检测,第一个空闲检测成功的机器选定为目标执行器并发起调度;

    SHARDING_BROADCAST(分片广播):广播触发对应集群中所有执行器执行一次任务,同时传递分片参数;可根据分片参数开发分片任务;

 

- Cron:触发任务执行的Cron表达式;

- 运行模式:

    BEAN模式:任务以JobHandler方式维护在执行器端;需要结合 "JobHandler" 属性匹配执行器中任务;

    GLUE模式(Java):任务以源码方式维护在调度中心;该模式的任务实际上是一段继承自IJobHandlerJava类代码并 "groovy" 源码方式维护,它在执行器项目中运行,可使用@Resource/@Autowire注入执行器里中的其他服务;

    GLUE模式(Shell):任务以源码方式维护在调度中心;该模式的任务实际上是一段 "shell" 脚本;

    GLUE模式(Python):任务以源码方式维护在调度中心;该模式的任务实际上是一段 "python" 脚本;

    GLUE模式(NodeJS):任务以源码方式维护在调度中心;该模式的任务实际上是一段 "nodejs" 脚本;

- JobHandler:运行模式为 "BEAN模式" 时生效,对应执行器中新开发的JobHandler“@JobHander”注解自定义的value值;

- 子任务Key:每个任务都拥有一个唯一的任务Key(任务Key可以从任务列表获取),当本任务执行结束并且执行成功时,将会触发子任务Key所对应的任务的一次主动调度。

- 阻塞处理策略:调度过于密集执行器来不及处理时的处理策略;

    单机串行(默认):调度请求进入单机执行器后,调度请求进入FIFO队列并以串行方式运行;

    丢弃后续调度:调度请求进入单机执行器后,发现执行器存在运行的调度任务,本次请求将会被丢弃并标记为失败;

    覆盖之前调度:调度请求进入单机执行器后,发现执行器存在运行的调度任务,将会终止运行中的调度任务并清空队列,然后运行本地调度任务;

- 失败处理策略;调度失败时的处理策略;

    失败告警(默认):调度失败时,将会触发失败报警,如发送报警邮件;

    失败重试:调度失败时,将会主动进行一次失败重试调度,重试调度后仍然失败将会触发一失败告警。注意当任务以failover方式路由时,每次失败重试将会触发新一轮路由。

- 执行参数:任务执行所需的参数,多个参数时用逗号分隔,任务执行时将会把多个参数转换成数组传入;

- 报警邮件:任务调度失败时邮件通知的邮箱地址,支持配置多邮箱地址,配置多个邮箱地址时用逗号分隔;

- 负责人:任务的负责人;

3.1 BEAN模式

任务逻辑以JobHandler的形式存在于执行器所在项目中,开发流程如下:

步骤一:执行器项目中,开发JobHandler

- 1 新建一个继承com.xxl.job.core.handler.IJobHandlerJava类;

- 2 该类被Spring容器扫描为Bean实例,如加“@Component”注解;

- 3 添加 “@JobHander(value="自定义jobhandler名称")”注解,注解的value值为自定义的JobHandler名称,该名称对应的是调度中心新建任务的JobHandler属性的值。

(可参考Sample示例执行器中的DemoJobHandler,见下图)

 

步骤二:调度中心,新建调度任务

参考上文配置属性详细说明对新建的任务进行参数配置,运行模式选中 "BEAN模式"JobHandler属性填写任务注解@JobHander中定义的值;

 

3.2 GLUE模式(Java)

任务以源码方式维护在调度中心,支持通过Web IDE在线更新,实时编译和生效,因此不需要指定JobHandler。开发流程如下:

步骤一:调度中心,新建调度任务:

参考上文配置属性详细说明对新建的任务进行参数配置,运行模式选中 "GLUE模式(Java)"

 

步骤二:开发任务代码:

选中指定任务,点击该任务右侧“GLUE”按钮,将会前往GLUE任务的Web IDE界面,在该界面支持对任务代码进行开发(也可以在IDE中开发完成后,复制粘贴到编辑中)。

版本回溯功能(支持30个版本的版本回溯):在GLUE任务的Web IDE界面,选择右上角下拉框版本回溯,会列出该GLUE的更新历史,选择相应版本即可显示该版本代码,保存后GLUE代码即回退到对应的历史版本;

 

3.3 GLUE模式(Shell)

步骤一:调度中心,新建调度任务

参考上文配置属性详细说明对新建的任务进行参数配置,运行模式选中 "GLUE模式(Shell)"

步骤二:开发任务代码:

选中指定任务,点击该任务右侧“GLUE”按钮,将会前往GLUE任务的Web IDE界面,在该界面支持对任务代码进行开发(也可以在IDE中开发完成后,复制粘贴到编辑中)。

该模式的任务实际上是一段 "shell" 脚本;

 

3.4 GLUE模式(Python)

步骤一:调度中心,新建调度任务

参考上文配置属性详细说明对新建的任务进行参数配置,运行模式选中 "GLUE模式(Python)"

步骤二:开发任务代码:

选中指定任务,点击该任务右侧“GLUE”按钮,将会前往GLUE任务的Web IDE界面,在该界面支持对任务代码进行开发(也可以在IDE中开发完成后,复制粘贴到编辑中)。

该模式的任务实际上是一段 "python" 脚本;

 

 

5.5 任务 "运行模式" 剖析

5.5.1 "Bean模式" 任务

开发步骤:可参考 "章节三" 原理:每个Bean模式任务都是一个SpringBean类实例,它被维护在执行器项目的Spring容器中。任务类需要加“@JobHander(value="名称")”注解,因为执行器会根据该注解识别Spring容器中的任务。任务类需要继承统一接口“IJobHandler”,任务逻辑在execute方法中开发,因为执行器在接收到调度中心的调度请求时,将会调用“IJobHandler”execute方法,执行任务逻辑。

5.5.2 "GLUE模式(Java)" 任务

开发步骤:可参考 "章节三" 原理:每个 "GLUE模式(Java)" 任务的代码,实际上是一个继承自“IJobHandler”的实现类的类代码执行器接收到调度中心的调度请求时,会通过Groovy类加载器加载此代码,实例化成Java对象,同时注入此代码中声明的Spring服务(请确保Glue代码中的服务和类引用在执行器项目中存在),然后调用该对象的execute方法,执行任务逻辑。

5.5.3 GLUE模式(Shell) + GLUE模式(Python) + GLUE模式(NodeJS)

开发步骤:可参考 "章节三" 原理:脚本任务的源码托管在调度中心,脚本逻辑在执行器运行。当触发脚本任务时,执行器会加载脚本源码在执行器机器上生成一份脚本文件,然后通过Java代码调用该脚本;并且实时将脚本输出日志写到任务日志文件中,从而在调度中心可以实时监控脚本运行情况;脚本返回码为0时表示执行成功,其他标示执行失败。

目前支持的脚本类型如下:

- shell脚本:任务运行模式选择为 "GLUE模式(Shell)"时支持 "shell" 脚本任务;

- python脚本:任务运行模式选择为 "GLUE模式(Python)"时支持 "python" 脚本任务;

- nodejs脚本:务运行模式选择为 "GLUE模式(NodeJS)"时支持 "nodejs" 脚本任务;

5.5.4 执行器

执行器实际上是一个内嵌的Jetty服务器,默认端口9999,如下图配置文件所示(参数:xxl.job.executor.port)。

在项目启动时,执行器会通过识别Spring容器中“Bean模式任务,以注解的value属性为key管理起来。

执行器接收到调度中心的调度请求时,如果任务类型为“Bean模式,将会匹配Spring容器中的“Bean模式任务,然后调用其execute方法,执行任务逻辑。如果任务类型为“GLUE模式,将会加载GLue代码,实例化Java对象,注入依赖的Spring服务(注意:Glue代码中注入的Spring服务,必须存在与该执行器项目的Spring容器中),然后调用execute方法,执行任务逻辑。

5.5.5 任务日志

XXL-JOB会为每次调度请求生成一个单独的日志文件,需要通过 "XxlJobLogger.log" 打印执行日志,调度中心查看执行日志时将会加载对应的日志文件。

(历史版本通过重写LOG4JAppender实现,存在依赖限制,该方式在新版本已经被抛弃)

日志文件存放的位置可在执行器配置文件进行自定义,默认目录格式为:/data/applogs/xxl-job/jobhandler/“格式化日期”/“数据库调度日志记录的主键ID.log”

JobHandler中开启子线程时,子线程将会将会把日志打印在父线程即JobHandler的执行日志中,方便日志追踪。

5.6 通讯模块剖析

5.6.1 一次完整的任务调度通讯流程

- 1调度中心执行器发送http调度请求: “执行器中接收请求的服务,实际上是一台内嵌jetty服务器,默认端口9999;

- 2执行器执行任务逻辑;

- 3执行器”http回调调度中心调度结果: “调度中心中接收回调的服务,是针对执行器开放一套API服务;

5.6.2 通讯数据加密

调度中心向执行器发送的调度请求时使用RequestModelResponseModel两个对象封装调度请求参数和响应数据, 在进行通讯之前底层会将上述两个对象对象序列化,并进行数据协议以及时间戳检验,从而达到数据加密的功能;

5.7 任务注册, 任务自动发现

v1.5版本之后, 任务取消了"任务执行机器"属性, 改为通过任务注册和自动发现的方式, 动态获取远程执行器地址并执行。

AppName: 每个执行器机器集群的唯一标示, 任务注册以 "执行器" 为最小粒度进行注册; 每个任务通过其绑定的执行器可感知对应的执行器机器列表;

注册表: "XXL_JOB_QRTZ_TRIGGER_REGISTRY", "执行器" 在进行任务注册时将会周期性维护一条注册记录,即机器地址和AppName的绑定关系; "调度中心" 从而可以动态感知每个AppName在线的机器列表;

执行器注册: 任务注册Beat周期默认30s; 执行器以一倍Beat进行执行器注册, 调度中心以一倍Beat进行动态任务发现; 注册信息的失效时间被三倍Beat;

执行器注册摘除:执行器销毁时,将会主动上报调度中心并摘除对应的执行器机器信息,提高心跳注册的实时性;

为保证系统"轻量级"并且降低学习部署成本,没有采用Zookeeper作为注册中心,采用DB方式进行任务注册发现;

5.8 任务执行结果

v1.6.2之后,任务执行结果通过 "IJobHandler" 的返回值 "ReturnT" 进行判断; 当返回值符合 "ReturnT.code == ReturnT.SUCCESS_CODE" 时表示任务执行成功,否则表示任务执行失败,而且可以通过 "ReturnT.msg" 回调错误信息给调度中心; 从而,在任务逻辑中可以方便的控制任务执行结果;

5.9 分片广播 & 动态分片

执行器集群部署时,任务路由策略选择"分片广播"情况下,一次任务调度将会广播触发对应集群中所有执行器执行一次任务,同时传递分片参数;可根据分片参数开发分片任务;

"分片广播" 以执行器为维度进行分片,支持动态扩容执行器集群从而动态增加分片数量,协同进行业务处理;在进行大数据量业务操作时可显著提升任务处理能力和速度。

"分片广播" 和普通任务开发流程一致,不同之处在于可以可以获取分片参数,获取分片参数对象的代码如下(可参考Sample示例执行器中的示例任务"ShardingJobHandler" ):

ShardingUtil.ShardingVO shardingVO = ShardingUtil.getShardingVo();

该分片参数对象拥有两个属性:

index:当前分片序号(0开始),执行器集群列表中当前执行器的序号;

total:总分片数,执行器集群的总机器数量;

该特性适用场景如:

  • 1、分片任务场景:10个执行器的集群来处理10w条数据,每台机器只需要处理1w条数据,耗时降低10倍;
  • 2、广播任务场景:广播执行器机器运行shell脚本、广播集群节点进行缓存更新等

5.10 访问令牌(AccessToken

为提升系统安全性,调度中心和执行器进行安全性校验,双方AccessToken匹配才允许通讯;

调度中心和执行器,可通过配置项 "xxl.job.accessToken" 进行AccessToken的设置。

调度中心和执行器,如果需要正常通讯,只有两种设置;

  • 设置一:调度中心和执行器,均不设置AccessToken;关闭安全性校验;
  • 设置二:调度中心和执行器,设置了相同的AccessToken

5.11 调度中心API服务

调度中心提供了API服务,供执行器和业务方选择使用,目前提供的API服务有:

1、任务结果回调服务;

2、执行器注册服务;

3、执行器注册摘除服务;

4、触发任务单次执行服务,支持任务根据业务事件触发;

调度中心API服务位置:com.xxl.job.core.biz.AdminBiz.java

调度中心API服务请求参考代码:com.xxl.job.dao.impl.AdminBizTest.java

 

 

详情可看:https://www.bilibili.com/video/BV1bK4y1C7zK/

查看全文
如若内容造成侵权/违法违规/事实不符,请联系编程学习网邮箱:809451989@qq.com进行投诉反馈,一经查实,立即删除!

相关文章

  1. span标签中显示固定长度,超出部分用省略号代替,光标放到文字上显示全部

    多余的字被盖住。 在span中实现显示某段内容,固定其长度,多余部分用省略号代替,这样就用到html的title属性; 如:<span title="value"></span> title属性:其值是text,属性描述是规定元素的工具提示文本,意思就是鼠标移到元素上时显示title中的内容…...

    2024/4/18 19:47:42
  2. 使用jmeter对数据库进行压力测试

    安装jmeter 1.从官网上下载最新发布版 2.安装jdk环境 3.解压缩,打开bin下的jmeter 创建测试计划 1.创建线程组线程组中可以设置线程数,线程数就是同事并发的数目,可以模拟大量用户同时访问的情况2.添加jdbc连接设置jdbc连接3.添加jdbc请求这里的线程池设置为刚才命名的线程池…...

    2024/4/26 14:08:21
  3. 阿里云docker镜像仓库无法登录

    Error response from daemon: Get https://registry.cn-hangzhou.aliyuncs.com/v2/: unauthorized: authentication required 我本来就是root登录,没有加sudo,所以这里应该是要输入仓库密码,而不是root用户密码,当然也不是阿里云登录密码。仓库密码设置如下图:...

    2024/4/19 23:41:12
  4. 6.4定轨

    其本质是利用非线性最小二乘法来进行迭代求解。利用多个时间点的测量来求取轨道初值。因此重点就是要求各个时间点的测量对于轨道初值的导数。根据链式法则,这一导数又被分成两部分,即各时间点的测量值对于测量时间点的轨道的雅各比矩阵,以及测量时间点的轨道对于初始轨道的…...

    2024/5/7 10:28:04
  5. Android常用开源库之leakcanary使用详解与原理分析

    Android常用开源库之leakcanary使用详解与原理分析leakcanary介绍leakcanary版本对比使用方式Demo和现象具体原理 leakcanary介绍简介:leakcanary是squra公司出品的一款内存分析的工具,在android项目里,被使用的非常广泛,中大型公司基本都会注重内存问题,例如内存泄漏,内…...

    2024/5/8 4:45:58
  6. 【EOS币价格分析】EOS,以太坊和Ripple的XRP –每日技术分析– 20/06/03

    EOS EOS周二下跌5.40%。 EOS收复了周一大部分5.68%的上涨行情,收于2.6762美元。 那天开始看涨。 EOS上涨至尾盘高点2.900美元,随后出现反转。 EOS反弹后突破第一个主要阻力位2.886美元,随后跌至午盘早盘低点2.5910美元。 EOS跌破第一主要支撑位2.7135美元和第二主要支撑位2.…...

    2024/4/18 16:39:18
  7. 问题:javascript判断某个月有多少天?

    遇到的问题:javascript判断某个月有多少天?解决方法:a、var temp = new Date(year,month,1); var day = new Date(temp.getTime()-864e5).getDate();b、function getDay(year,month){var d = new Date(year,month,1,0,0,0);var yD = new Date(d-1000); //yD是前一天return …...

    2024/4/15 5:33:00
  8. Redis总结(八)如何搭建高可用的Redis集群

    https://www.cnblogs.com/zhangweizhong/p/11301869.html Redis总结(八)如何搭建高可用的Redis集群...

    2024/4/24 10:42:58
  9. DBeaverEE-优秀的数据库连接工具

    DBeaverEE-优秀的数据库连接工具 作为程后端程序员数据库连接工具是必不可少的了,每天都需要跟业务和数据打交道,MySQL,Oracle,SQLserver,Redis,MongoDB等等,但是很多工具支持的数据库类型都相对较少,用过Navicat还算是比较好用的工具了,但是不支持像Redis、MongoDB这…...

    2024/4/24 10:43:04
  10. std::filesystem 用法

    https://www.cnblogs.com/ConfuciusPei/p/12365592.html...

    2024/5/6 21:18:55
  11. QT大作业——自制小游戏

    The RPGgame with QT 一、 系统架构该项目有4个ui组成,其中mainwindow作为项目程序入口,窗口跳转流程为:mainwindow->gamegraph->area_prairrie->playerstastus。 主要游戏功能装载在gamegraph和area_prairrie两个ui中,而该两个ui中,主要功能函数分别装载在gameg…...

    2024/4/24 10:42:55
  12. 学习Ajax的体会

    Ajax技术实战 输入区号触发Ajax异步请求,从服务器获取区号所对应的省市信息,并在jsp页面中进行更新填充 <script type="text/javascript">var xhr=false;function createXHR() {try{xhr=new XMLHttpRequest();}catch (e) {console.log("创建xhr失败&quo…...

    2024/5/7 8:47:38
  13. Java部分集合类和数据结构的基本方法介绍

    文章目录前言ArrayList构造方法基本方法HashMap构造方法基本方法如何对 HashMap 进行遍历HashSet构造方法基本方法如何对 HashSet 进行遍历Stack构造方法基本方法Queue构造方法基本方法 前言 记录一些在平时刷 LeetCode 会用到的集合类和数据结构。 简单的说看完会用就完事了。…...

    2024/5/7 1:30:50
  14. 电子商务(商城类)网站测试经验总结

    1.按照测试类型来划分 1.兼容性 1.1主要是在浏览器兼容(360浏览器IE6 IE8浏览器) 1.2.操作系统,主要体现在操作系统兼容(xp win2003 win2007) 2.UI测试 2.1检查连接是否正确 2.2是否有文字错误信息 2.2产品价格是否有显示错误。 3.用户体验测试UE 3.1首页产品的展示与分类…...

    2024/5/7 1:24:50
  15. linux学习笔记:04-vim安装与配置

    一、安装vim 1、 普通用户下输入命令:sudo apt-get install vim,然后输入密码就可以开始安装,确认 y。 注:如果遇到输入以上命令提示说apt 进程无法运行。解决办法:第一种方法用ps -aux 查看apt的进程号,杀死即可 :kill -9 【进程号】;第二种方法:重启2、 等待、完成安…...

    2024/5/7 2:55:33
  16. Drools规则引擎使用

    Drools规则引擎 如果使用硬编码来实现业务规则的话,不容易维护,不容易应对变化,改变的话需要重启服务器才能生效. 规则引擎实现了将业务决策从应用程序代码中分离出来,接收数据输入,解释业务规则,并根据业务规则做出业务决策。 规则引擎有三部分构成Working Memory(工作内存…...

    2024/5/6 21:09:25
  17. 内网穿透与鸡肋的win10家庭版

    内网穿透网上教程太多,自不必多说。当然我看的是这篇贴: https://zhuanlan.zhihu.com/p/113672652 跟着教程走一切都是很好的,token设置正确后在客户端可以正确连接 2020/05/15 22:02:48 [I] [service.go:282] [c9a7a8cd65844199] login to server success, get run id [c9a…...

    2024/5/7 5:19:17
  18. Python基础语法学完后,如何进一步提高?

    Python基础教程:基础语法学完后如何进一步提高Python 的发展方向有很多,各个方向上的名词和概念对于初学者来说也是一种压力。一开始不要贪多贪大,建议先从概念最少的方向入手,循序渐进,打怪升级。建议初学者先通过 requests + Beautiful Soup 做一个简单的爬虫,先不要去…...

    2024/5/7 6:41:46
  19. 在一台centos上搭建redis集群(一主两从)并配置哨兵模式

    1,拉取redis镜像docker pull redis2,创建三个redis容器,端口分别为6379,6380,6381docker run --name redis-6379 -p 6379:6379 -d redis docker run --name redis-6380 -p 6380:6379 -d redis docker run --name redis-6381 -p 6381:6379 -d redis3,查看创建好的容器docker…...

    2024/4/24 10:42:49
  20. Vue学习笔记-雷云龙

    Vue 一 、下载安装 百度 二 、快速入门: 菜鸟教程:https://www.runoob.com/vue2/vue-tutorial.html 三 、Vue基础 1、第一个vue 程序 https://www.cnblogs.com/hellman/p/10985377.html 1.第一步,创建项目 进入你的项目目录,创建一个基于 webpack 模板的新项目: vue init we…...

    2024/5/7 4:32:13

最新文章

  1. 密码学《图解密码技术》 记录学习 第十三章

    目录 第十三章 13.1 本章学习的内容 13.2 PGP 简介 13.2.1 什么是 PGP 13.2.2 关于 OpenPGP 13.2.3关于GNU Privacy Guard 13.2.4 PGP 的功能 公钥密码 数字签名 单向散列函数 证书 压缩 文本数据 大文件的拆分和拼合 13.3 生成密钥对 13.4 加密与解密 13.4.1 加密 生成…...

    2024/5/8 5:05:17
  2. 梯度消失和梯度爆炸的一些处理方法

    在这里是记录一下梯度消失或梯度爆炸的一些处理技巧。全当学习总结了如有错误还请留言&#xff0c;在此感激不尽。 权重和梯度的更新公式如下&#xff1a; w w − η ⋅ ∇ w w w - \eta \cdot \nabla w ww−η⋅∇w 个人通俗的理解梯度消失就是网络模型在反向求导的时候出…...

    2024/5/7 10:36:02
  3. yolov9直接调用zed相机实现三维测距(python)

    yolov9直接调用zed相机实现三维测距&#xff08;python&#xff09; 1. 相关配置2. 相关代码2.1 相机设置2.2 测距模块2.2 实验结果 相关链接 此项目直接调用zed相机实现三维测距&#xff0c;无需标定&#xff0c;相关内容如下&#xff1a; 1. yolov4直接调用zed相机实现三维测…...

    2024/5/7 4:57:37
  4. 面试经典算法系列之双指针1 -- 合并两个有序数组

    面试经典算法题1 – 合并两个有序数组 LeetCode.88 公众号&#xff1a;阿Q技术站 问题描述 给你两个按 非递减顺序 排列的整数数组 nums1 和 nums2&#xff0c;另有两个整数 m 和 n &#xff0c;分别表示 nums1 和 nums2 中的元素数目。 请你 合并 nums2 到 nums1 中&#…...

    2024/5/5 8:39:32
  5. 【外汇早评】美通胀数据走低,美元调整

    原标题:【外汇早评】美通胀数据走低,美元调整昨日美国方面公布了新一期的核心PCE物价指数数据,同比增长1.6%,低于前值和预期值的1.7%,距离美联储的通胀目标2%继续走低,通胀压力较低,且此前美国一季度GDP初值中的消费部分下滑明显,因此市场对美联储后续更可能降息的政策…...

    2024/5/7 5:50:09
  6. 【原油贵金属周评】原油多头拥挤,价格调整

    原标题:【原油贵金属周评】原油多头拥挤,价格调整本周国际劳动节,我们喜迎四天假期,但是整个金融市场确实流动性充沛,大事频发,各个商品波动剧烈。美国方面,在本周四凌晨公布5月份的利率决议和新闻发布会,维持联邦基金利率在2.25%-2.50%不变,符合市场预期。同时美联储…...

    2024/5/7 9:45:25
  7. 【外汇周评】靓丽非农不及疲软通胀影响

    原标题:【外汇周评】靓丽非农不及疲软通胀影响在刚结束的周五,美国方面公布了新一期的非农就业数据,大幅好于前值和预期,新增就业重新回到20万以上。具体数据: 美国4月非农就业人口变动 26.3万人,预期 19万人,前值 19.6万人。 美国4月失业率 3.6%,预期 3.8%,前值 3…...

    2024/5/4 23:54:56
  8. 【原油贵金属早评】库存继续增加,油价收跌

    原标题:【原油贵金属早评】库存继续增加,油价收跌周三清晨公布美国当周API原油库存数据,上周原油库存增加281万桶至4.692亿桶,增幅超过预期的74.4万桶。且有消息人士称,沙特阿美据悉将于6月向亚洲炼油厂额外出售更多原油,印度炼油商预计将每日获得至多20万桶的额外原油供…...

    2024/5/7 14:25:14
  9. 【外汇早评】日本央行会议纪要不改日元强势

    原标题:【外汇早评】日本央行会议纪要不改日元强势近两日日元大幅走强与近期市场风险情绪上升,避险资金回流日元有关,也与前一段时间的美日贸易谈判给日本缓冲期,日本方面对汇率问题也避免继续贬值有关。虽然今日早间日本央行公布的利率会议纪要仍然是支持宽松政策,但这符…...

    2024/5/4 23:54:56
  10. 【原油贵金属早评】欧佩克稳定市场,填补伊朗问题的影响

    原标题:【原油贵金属早评】欧佩克稳定市场,填补伊朗问题的影响近日伊朗局势升温,导致市场担忧影响原油供给,油价试图反弹。此时OPEC表态稳定市场。据消息人士透露,沙特6月石油出口料将低于700万桶/日,沙特已经收到石油消费国提出的6月份扩大出口的“适度要求”,沙特将满…...

    2024/5/4 23:55:05
  11. 【外汇早评】美欲与伊朗重谈协议

    原标题:【外汇早评】美欲与伊朗重谈协议美国对伊朗的制裁遭到伊朗的抗议,昨日伊朗方面提出将部分退出伊核协议。而此行为又遭到欧洲方面对伊朗的谴责和警告,伊朗外长昨日回应称,欧洲国家履行它们的义务,伊核协议就能保证存续。据传闻伊朗的导弹已经对准了以色列和美国的航…...

    2024/5/4 23:54:56
  12. 【原油贵金属早评】波动率飙升,市场情绪动荡

    原标题:【原油贵金属早评】波动率飙升,市场情绪动荡因中美贸易谈判不安情绪影响,金融市场各资产品种出现明显的波动。随着美国与中方开启第十一轮谈判之际,美国按照既定计划向中国2000亿商品征收25%的关税,市场情绪有所平复,已经开始接受这一事实。虽然波动率-恐慌指数VI…...

    2024/5/7 11:36:39
  13. 【原油贵金属周评】伊朗局势升温,黄金多头跃跃欲试

    原标题:【原油贵金属周评】伊朗局势升温,黄金多头跃跃欲试美国和伊朗的局势继续升温,市场风险情绪上升,避险黄金有向上突破阻力的迹象。原油方面稍显平稳,近期美国和OPEC加大供给及市场需求回落的影响,伊朗局势并未推升油价走强。近期中美贸易谈判摩擦再度升级,美国对中…...

    2024/5/4 23:54:56
  14. 【原油贵金属早评】市场情绪继续恶化,黄金上破

    原标题:【原油贵金属早评】市场情绪继续恶化,黄金上破周初中国针对于美国加征关税的进行的反制措施引发市场情绪的大幅波动,人民币汇率出现大幅的贬值动能,金融市场受到非常明显的冲击。尤其是波动率起来之后,对于股市的表现尤其不安。隔夜美国股市出现明显的下行走势,这…...

    2024/5/6 1:40:42
  15. 【外汇早评】美伊僵持,风险情绪继续升温

    原标题:【外汇早评】美伊僵持,风险情绪继续升温昨日沙特两艘油轮再次发生爆炸事件,导致波斯湾局势进一步恶化,市场担忧美伊可能会出现摩擦生火,避险品种获得支撑,黄金和日元大幅走强。美指受中美贸易问题影响而在低位震荡。继5月12日,四艘商船在阿联酋领海附近的阿曼湾、…...

    2024/5/4 23:54:56
  16. 【原油贵金属早评】贸易冲突导致需求低迷,油价弱势

    原标题:【原油贵金属早评】贸易冲突导致需求低迷,油价弱势近日虽然伊朗局势升温,中东地区几起油船被袭击事件影响,但油价并未走高,而是出于调整结构中。由于市场预期局势失控的可能性较低,而中美贸易问题导致的全球经济衰退风险更大,需求会持续低迷,因此油价调整压力较…...

    2024/5/4 23:55:17
  17. 氧生福地 玩美北湖(上)——为时光守候两千年

    原标题:氧生福地 玩美北湖(上)——为时光守候两千年一次说走就走的旅行,只有一张高铁票的距离~ 所以,湖南郴州,我来了~ 从广州南站出发,一个半小时就到达郴州西站了。在动车上,同时改票的南风兄和我居然被分到了一个车厢,所以一路非常愉快地聊了过来。 挺好,最起…...

    2024/5/7 9:26:26
  18. 氧生福地 玩美北湖(中)——永春梯田里的美与鲜

    原标题:氧生福地 玩美北湖(中)——永春梯田里的美与鲜一觉醒来,因为大家太爱“美”照,在柳毅山庄去寻找龙女而错过了早餐时间。近十点,向导坏坏还是带着饥肠辘辘的我们去吃郴州最富有盛名的“鱼头粉”。说这是“十二分推荐”,到郴州必吃的美食之一。 哇塞!那个味美香甜…...

    2024/5/4 23:54:56
  19. 氧生福地 玩美北湖(下)——奔跑吧骚年!

    原标题:氧生福地 玩美北湖(下)——奔跑吧骚年!让我们红尘做伴 活得潇潇洒洒 策马奔腾共享人世繁华 对酒当歌唱出心中喜悦 轰轰烈烈把握青春年华 让我们红尘做伴 活得潇潇洒洒 策马奔腾共享人世繁华 对酒当歌唱出心中喜悦 轰轰烈烈把握青春年华 啊……啊……啊 两…...

    2024/5/4 23:55:06
  20. 扒开伪装医用面膜,翻六倍价格宰客,小姐姐注意了!

    原标题:扒开伪装医用面膜,翻六倍价格宰客,小姐姐注意了!扒开伪装医用面膜,翻六倍价格宰客!当行业里的某一品项火爆了,就会有很多商家蹭热度,装逼忽悠,最近火爆朋友圈的医用面膜,被沾上了污点,到底怎么回事呢? “比普通面膜安全、效果好!痘痘、痘印、敏感肌都能用…...

    2024/5/5 8:13:33
  21. 「发现」铁皮石斛仙草之神奇功效用于医用面膜

    原标题:「发现」铁皮石斛仙草之神奇功效用于医用面膜丽彦妆铁皮石斛医用面膜|石斛多糖无菌修护补水贴19大优势: 1、铁皮石斛:自唐宋以来,一直被列为皇室贡品,铁皮石斛生于海拔1600米的悬崖峭壁之上,繁殖力差,产量极低,所以古代仅供皇室、贵族享用 2、铁皮石斛自古民间…...

    2024/5/4 23:55:16
  22. 丽彦妆\医用面膜\冷敷贴轻奢医学护肤引导者

    原标题:丽彦妆\医用面膜\冷敷贴轻奢医学护肤引导者【公司简介】 广州华彬企业隶属香港华彬集团有限公司,专注美业21年,其旗下品牌: 「圣茵美」私密荷尔蒙抗衰,产后修复 「圣仪轩」私密荷尔蒙抗衰,产后修复 「花茵莳」私密荷尔蒙抗衰,产后修复 「丽彦妆」专注医学护…...

    2024/5/4 23:54:58
  23. 广州械字号面膜生产厂家OEM/ODM4项须知!

    原标题:广州械字号面膜生产厂家OEM/ODM4项须知!广州械字号面膜生产厂家OEM/ODM流程及注意事项解读: 械字号医用面膜,其实在我国并没有严格的定义,通常我们说的医美面膜指的应该是一种「医用敷料」,也就是说,医用面膜其实算作「医疗器械」的一种,又称「医用冷敷贴」。 …...

    2024/5/6 21:42:42
  24. 械字号医用眼膜缓解用眼过度到底有无作用?

    原标题:械字号医用眼膜缓解用眼过度到底有无作用?医用眼膜/械字号眼膜/医用冷敷眼贴 凝胶层为亲水高分子材料,含70%以上的水分。体表皮肤温度传导到本产品的凝胶层,热量被凝胶内水分子吸收,通过水分的蒸发带走大量的热量,可迅速地降低体表皮肤局部温度,减轻局部皮肤的灼…...

    2024/5/4 23:54:56
  25. 配置失败还原请勿关闭计算机,电脑开机屏幕上面显示,配置失败还原更改 请勿关闭计算机 开不了机 这个问题怎么办...

    解析如下&#xff1a;1、长按电脑电源键直至关机&#xff0c;然后再按一次电源健重启电脑&#xff0c;按F8健进入安全模式2、安全模式下进入Windows系统桌面后&#xff0c;按住“winR”打开运行窗口&#xff0c;输入“services.msc”打开服务设置3、在服务界面&#xff0c;选中…...

    2022/11/19 21:17:18
  26. 错误使用 reshape要执行 RESHAPE,请勿更改元素数目。

    %读入6幅图像&#xff08;每一幅图像的大小是564*564&#xff09; f1 imread(WashingtonDC_Band1_564.tif); subplot(3,2,1),imshow(f1); f2 imread(WashingtonDC_Band2_564.tif); subplot(3,2,2),imshow(f2); f3 imread(WashingtonDC_Band3_564.tif); subplot(3,2,3),imsho…...

    2022/11/19 21:17:16
  27. 配置 已完成 请勿关闭计算机,win7系统关机提示“配置Windows Update已完成30%请勿关闭计算机...

    win7系统关机提示“配置Windows Update已完成30%请勿关闭计算机”问题的解决方法在win7系统关机时如果有升级系统的或者其他需要会直接进入一个 等待界面&#xff0c;在等待界面中我们需要等待操作结束才能关机&#xff0c;虽然这比较麻烦&#xff0c;但是对系统进行配置和升级…...

    2022/11/19 21:17:15
  28. 台式电脑显示配置100%请勿关闭计算机,“准备配置windows 请勿关闭计算机”的解决方法...

    有不少用户在重装Win7系统或更新系统后会遇到“准备配置windows&#xff0c;请勿关闭计算机”的提示&#xff0c;要过很久才能进入系统&#xff0c;有的用户甚至几个小时也无法进入&#xff0c;下面就教大家这个问题的解决方法。第一种方法&#xff1a;我们首先在左下角的“开始…...

    2022/11/19 21:17:14
  29. win7 正在配置 请勿关闭计算机,怎么办Win7开机显示正在配置Windows Update请勿关机...

    置信有很多用户都跟小编一样遇到过这样的问题&#xff0c;电脑时发现开机屏幕显现“正在配置Windows Update&#xff0c;请勿关机”(如下图所示)&#xff0c;而且还需求等大约5分钟才干进入系统。这是怎样回事呢&#xff1f;一切都是正常操作的&#xff0c;为什么开时机呈现“正…...

    2022/11/19 21:17:13
  30. 准备配置windows 请勿关闭计算机 蓝屏,Win7开机总是出现提示“配置Windows请勿关机”...

    Win7系统开机启动时总是出现“配置Windows请勿关机”的提示&#xff0c;没过几秒后电脑自动重启&#xff0c;每次开机都这样无法进入系统&#xff0c;此时碰到这种现象的用户就可以使用以下5种方法解决问题。方法一&#xff1a;开机按下F8&#xff0c;在出现的Windows高级启动选…...

    2022/11/19 21:17:12
  31. 准备windows请勿关闭计算机要多久,windows10系统提示正在准备windows请勿关闭计算机怎么办...

    有不少windows10系统用户反映说碰到这样一个情况&#xff0c;就是电脑提示正在准备windows请勿关闭计算机&#xff0c;碰到这样的问题该怎么解决呢&#xff0c;现在小编就给大家分享一下windows10系统提示正在准备windows请勿关闭计算机的具体第一种方法&#xff1a;1、2、依次…...

    2022/11/19 21:17:11
  32. 配置 已完成 请勿关闭计算机,win7系统关机提示“配置Windows Update已完成30%请勿关闭计算机”的解决方法...

    今天和大家分享一下win7系统重装了Win7旗舰版系统后&#xff0c;每次关机的时候桌面上都会显示一个“配置Windows Update的界面&#xff0c;提示请勿关闭计算机”&#xff0c;每次停留好几分钟才能正常关机&#xff0c;导致什么情况引起的呢&#xff1f;出现配置Windows Update…...

    2022/11/19 21:17:10
  33. 电脑桌面一直是清理请关闭计算机,windows7一直卡在清理 请勿关闭计算机-win7清理请勿关机,win7配置更新35%不动...

    只能是等着&#xff0c;别无他法。说是卡着如果你看硬盘灯应该在读写。如果从 Win 10 无法正常回滚&#xff0c;只能是考虑备份数据后重装系统了。解决来方案一&#xff1a;管理员运行cmd&#xff1a;net stop WuAuServcd %windir%ren SoftwareDistribution SDoldnet start WuA…...

    2022/11/19 21:17:09
  34. 计算机配置更新不起,电脑提示“配置Windows Update请勿关闭计算机”怎么办?

    原标题&#xff1a;电脑提示“配置Windows Update请勿关闭计算机”怎么办&#xff1f;win7系统中在开机与关闭的时候总是显示“配置windows update请勿关闭计算机”相信有不少朋友都曾遇到过一次两次还能忍但经常遇到就叫人感到心烦了遇到这种问题怎么办呢&#xff1f;一般的方…...

    2022/11/19 21:17:08
  35. 计算机正在配置无法关机,关机提示 windows7 正在配置windows 请勿关闭计算机 ,然后等了一晚上也没有关掉。现在电脑无法正常关机...

    关机提示 windows7 正在配置windows 请勿关闭计算机 &#xff0c;然后等了一晚上也没有关掉。现在电脑无法正常关机以下文字资料是由(历史新知网www.lishixinzhi.com)小编为大家搜集整理后发布的内容&#xff0c;让我们赶快一起来看一下吧&#xff01;关机提示 windows7 正在配…...

    2022/11/19 21:17:05
  36. 钉钉提示请勿通过开发者调试模式_钉钉请勿通过开发者调试模式是真的吗好不好用...

    钉钉请勿通过开发者调试模式是真的吗好不好用 更新时间:2020-04-20 22:24:19 浏览次数:729次 区域: 南阳 > 卧龙 列举网提醒您:为保障您的权益,请不要提前支付任何费用! 虚拟位置外设器!!轨迹模拟&虚拟位置外设神器 专业用于:钉钉,外勤365,红圈通,企业微信和…...

    2022/11/19 21:17:05
  37. 配置失败还原请勿关闭计算机怎么办,win7系统出现“配置windows update失败 还原更改 请勿关闭计算机”,长时间没反应,无法进入系统的解决方案...

    前几天班里有位学生电脑(windows 7系统)出问题了&#xff0c;具体表现是开机时一直停留在“配置windows update失败 还原更改 请勿关闭计算机”这个界面&#xff0c;长时间没反应&#xff0c;无法进入系统。这个问题原来帮其他同学也解决过&#xff0c;网上搜了不少资料&#x…...

    2022/11/19 21:17:04
  38. 一个电脑无法关闭计算机你应该怎么办,电脑显示“清理请勿关闭计算机”怎么办?...

    本文为你提供了3个有效解决电脑显示“清理请勿关闭计算机”问题的方法&#xff0c;并在最后教给你1种保护系统安全的好方法&#xff0c;一起来看看&#xff01;电脑出现“清理请勿关闭计算机”在Windows 7(SP1)和Windows Server 2008 R2 SP1中&#xff0c;添加了1个新功能在“磁…...

    2022/11/19 21:17:03
  39. 请勿关闭计算机还原更改要多久,电脑显示:配置windows更新失败,正在还原更改,请勿关闭计算机怎么办...

    许多用户在长期不使用电脑的时候&#xff0c;开启电脑发现电脑显示&#xff1a;配置windows更新失败&#xff0c;正在还原更改&#xff0c;请勿关闭计算机。。.这要怎么办呢&#xff1f;下面小编就带着大家一起看看吧&#xff01;如果能够正常进入系统&#xff0c;建议您暂时移…...

    2022/11/19 21:17:02
  40. 还原更改请勿关闭计算机 要多久,配置windows update失败 还原更改 请勿关闭计算机,电脑开机后一直显示以...

    配置windows update失败 还原更改 请勿关闭计算机&#xff0c;电脑开机后一直显示以以下文字资料是由(历史新知网www.lishixinzhi.com)小编为大家搜集整理后发布的内容&#xff0c;让我们赶快一起来看一下吧&#xff01;配置windows update失败 还原更改 请勿关闭计算机&#x…...

    2022/11/19 21:17:01
  41. 电脑配置中请勿关闭计算机怎么办,准备配置windows请勿关闭计算机一直显示怎么办【图解】...

    不知道大家有没有遇到过这样的一个问题&#xff0c;就是我们的win7系统在关机的时候&#xff0c;总是喜欢显示“准备配置windows&#xff0c;请勿关机”这样的一个页面&#xff0c;没有什么大碍&#xff0c;但是如果一直等着的话就要两个小时甚至更久都关不了机&#xff0c;非常…...

    2022/11/19 21:17:00
  42. 正在准备配置请勿关闭计算机,正在准备配置windows请勿关闭计算机时间长了解决教程...

    当电脑出现正在准备配置windows请勿关闭计算机时&#xff0c;一般是您正对windows进行升级&#xff0c;但是这个要是长时间没有反应&#xff0c;我们不能再傻等下去了。可能是电脑出了别的问题了&#xff0c;来看看教程的说法。正在准备配置windows请勿关闭计算机时间长了方法一…...

    2022/11/19 21:16:59
  43. 配置失败还原请勿关闭计算机,配置Windows Update失败,还原更改请勿关闭计算机...

    我们使用电脑的过程中有时会遇到这种情况&#xff0c;当我们打开电脑之后&#xff0c;发现一直停留在一个界面&#xff1a;“配置Windows Update失败&#xff0c;还原更改请勿关闭计算机”&#xff0c;等了许久还是无法进入系统。如果我们遇到此类问题应该如何解决呢&#xff0…...

    2022/11/19 21:16:58
  44. 如何在iPhone上关闭“请勿打扰”

    Apple’s “Do Not Disturb While Driving” is a potentially lifesaving iPhone feature, but it doesn’t always turn on automatically at the appropriate time. For example, you might be a passenger in a moving car, but your iPhone may think you’re the one dri…...

    2022/11/19 21:16:57