当前位置: 首页 > news >正文

xv10相同网站大连建设网信息公开

xv10相同网站,大连建设网信息公开,百度网站排名,网站代理浏览器插件分析 改造 1、接口调用 2、创建新注解 3、自动注册核心 4、自动装配 测试 测试后 XXL-Job是一款非常优秀的任务调度中间件,其轻量级、使用简单、支持分布式等优点,被广泛应用在我们的项目中,解决了不少定时任务的调度问题。不仅如此&a…
  • 分析

  • 改造

    • 1、接口调用

    • 2、创建新注解

    • 3、自动注册核心

    • 4、自动装配

  • 测试


  • 测试后

XXL-Job是一款非常优秀的任务调度中间件,其轻量级、使用简单、支持分布式等优点,被广泛应用在我们的项目中,解决了不少定时任务的调度问题。不仅如此,XXL-Job 还提供了非常丰富的任务调度管理功能,如任务执行情况的监控及告警、任务执行日志的查看等,这些功能大大提高了我们项目的可维护性和任务执行的可靠性。

我们都知道,在使用过程中需要先到XXL-Job的任务调度中心页面上,配置执行器(executor)和具体的任务(job)。这一过程如果项目中的定时任务数量不多还好说,但如果任务多了,就需要我们动用更多的时间和精力来进行配置。幸运的是,XXL-Job也提供了API接口,可以通过编写代码来完成任务的添加、修改、删除等操作,大大降低了我们的配置工作量并提高了工作效率。

假设项目中有上百个这样的定时任务,那么每个任务都需要走一遍绑定jobHander后端接口,填写cron表达式这个流程…

我就想问问,填多了谁能不迷糊?

于是出于功能优化(偷懒 )这一动机,前几天我萌生了一个想法,有没有什么方法能够告别xxl-job的管理页面,能够让我不再需要到页面上去手动注册执行器和任务,实现让它们自动注册到调度中心呢。

分析 

分析一下,其实我们要做的很简单,只要在项目启动时主动注册executor和各个jobHandler到调度中心就可以了,流程如下:

 

 

有的小伙伴们可能要问了,我在页面上创建执行器 的时候,不是有一个选项叫做自动注册 吗,为什么我们这里还要自己添加新执行器?

其实这里有个误区,这里的自动注册指的是会根据项目中配置的xxl.job.executor.appname,将配置的机器地址自动注册到这个执行器的地址列表中。但是如果你之前没有手动创建过执行器,那么是不会给你自动添加一个新执行器到调度中心的。

既然有了想法咱们就直接开干,先到github上拉一份xxl-job的源码下来:

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

整个项目导入idea后,先看一下结构:

结合着文档和代码,先梳理一下各个模块都是干什么的:

  • xxl-job-admin:任务调度中心,启动后就可以访问管理页面,进行执行器和任务的注册、以及任务调用等功能了

  • xxl-job-core:公共依赖,项目中使用到xxl-job时要引入的依赖包

  • xxl-job-executor-samples:执行示例,分别包含了springboot版本和不使用框架的版本

为了弄清楚注册和查询executorjobHandler调用的是哪些接口,我们先从页面上去抓一个请求看看:

好了,这样就能定位到xxl-job-admin模块中/jobgroup/save这个接口,接下来可以很容易地找到源码位置:

 好了,这样就能定位到xxl-job-admin模块中/jobgroup/save这个接口,接下来可以很容易地找到源码位置:

 

按照这个思路,可以找到下面这几个关键接口:

  • /jobgroup/pageList:执行器列表的条件查询

  • /jobgroup/save:添加执行器

  • /jobinfo/pageList:任务列表的条件查询

  • /jobinfo/add:添加任务

但是如果直接调用这些接口,那么就会发现它会跳转到xxl-job-admin的的登录页面:

改造

我们改造的目的是实现一个starter,以后只要引入这个starter就能实现executorjobHandler的自动注册,要引入的关键依赖有下面两个:

 

 

1、接口调用

在调用调度中心的接口前,先把xxl-job-admin模块中的XxlJobInfoXxlJobGroup这两个类拿到我们的starter项目中,用于接收接口调用的结果。

登录接口 

创建一个JobLoginService,在调用业务接口前,需要通过登录接口获取cookie,并在获取到cookie后,缓存到本地的Map中。

 

2、创建新注解

在创建任务时,必填字段除了执行器和jobHandler之外,还有任务描述 、负责人 、Cron表达式 、调度类型 、运行模式 。在这里,我们默认调度类型为CRON、运行模式为BEAN,另外的3个字段的信息需要用户指定。

因此我们需要创建一个新注解@XxlRegister,来配合原生的@XxlJob注解进行使用,填写这几个字段的信息:

 

最后,额外添加了一个triggerStatus属性,表示任务的默认调度状态,0为停止状态,1为运行状态。

3、自动注册核心 

基本准备工作做完后,下面实现自动注册执行器和jobHandler的核心代码。核心类实现ApplicationListener接口,在接收到ApplicationReadyEvent事件后开始执行自动注册逻辑。

 

4、自动装配

创建一个配置类,用于扫描bean

 

将它添加到META-INF/spring.factories文件: 

到这里starter的编写就完成了,可以通过maven发布jar包到本地或者私服: 

测试

新建一个springboot项目,引入我们在上面打好的包:

 

application.properties中配置xxl-job的信息,首先是原生的配置内容:

 

从页面上手动执行任务进行测试,可以执行成功: 

到这里,starter的编写和测试过程就算基本完成了,项目中引入后,以后也能省出更多的时间来摸鱼学习了~

最后

 

我们非常感谢您的光临。如果您觉得这篇文章对您有帮助,那么我们诚挚地邀请您给我们一个star。这将有助于我们更好地为您提供更多优质的内容。另外,如果您有任何疑问或建议,请随时与我们联系。我们非常乐意听取您的反馈,并会尽快回复您。再次感谢您的支持!

 

 

 

 

http://www.yayakq.cn/news/462640/

相关文章:

  • 腾讯云免费建站西安网站制作公司官网
  • 网站快速收录教程东莞建设信息网官网
  • 网站防止非法链接怎么做阿里巴巴外贸订单网站
  • 著名办公室装修公司北京专业的网络seo
  • 丹阳网站建设方案No酒店网站建设
  • 网站开发从何学起wordpress镜像是什么意思
  • 手机做网站公司wordpress5回复后查看
  • 酷炫的网站欢迎页面网站建设好如何开通
  • 公司网站开发服务费属于无形资产哪一类如何登录网站制作平台
  • 黄冈建设培训中心网站东莞企业网站建设报价
  • 17z一起做网站广州自己做一款商城app
  • 怎么投稿各大媒体网站工程建设国家标准网站
  • 网站推广主要方法怎么样做英文网站
  • 二元期权网站建设合肥门户网站有哪些
  • 上海高端网站建设高端网站建设途牛 招聘 网站开发
  • 地方汽车网站模板购买美叶设计网站官网
  • 专业商城网站设计广州市新闻发布会
  • 郑州网站制作汉狮网站建设销售好做嘛
  • 那样的网站网站开发如何适应各分辨率
  • 游戏ui设计需要学什么软件网站排名软件优化
  • 原创文章网站网络营销的四大要素
  • 单身男女免费观看国语高清自助网站建设推广优化策略
  • 青岛网站建设情况湘西吉首市建设局网站
  • 可以申请做cpa广告的网站查logo的网站
  • 营销网站制作比较好的的磁力搜索引擎
  • 做微博这样的网站吗酷炫网站首页
  • 厦门门户网站建设网站上线之前怎么做推广
  • 网站开发在线课程wordpress表格编辑
  • 怎么向网站添加型号查询功能可以看国外网站的浏览app
  • 网站建设方面论文哈尔滨网络公司营销机构