CodeWorld-Cloud-Shop XXL-JOB动态创建任务详解篇1—奶妈级教学
前言
我们在CodeWorld-Cloud-Shop XXL-JOB入门详解篇介绍了XXL-JOB的基本使用
如果你还没有进行入门的同学,就先来一段奶妈级教学吧,然后再进行下一阶段
问题探索
我们虽然在入门级教学中演示了XXL-JOB任务调度的基本使用,我们也体会到了XXL-JOB的优越性以及页面操作的简单性
这样我们可以在界面直接对任务进行启动,停止等等操作
这让我很是舒服,但是可怕的事情来了
我们有这样一个需求,就拿项目中的来说
在商城首页呢,我们有一个轮播图,那么这个轮播图是随时进行切换的,我们随时可能在一个指定的时间更新这个轮播图信息
那么问题来了,当我们在添加轮播图时会给他指定一个上线和下线的时间,可能会有很多的轮播图添加,那我们每添加一个轮播图就去XXL-JOB的
可视化界面添加一个任务吗?那这样我们的手还不得断?还有加入我要在2021-01-01:12:05:35这个时间上线轮播图,那么我们在去手写CRON表达
式来执行任务吗?那我觉得你是真的有耐性,还附带了一个下线时间,上线和下线的时间都不一样。
那么我们应该怎么解决呢?
问题解决
首先呢,遇事不要慌,消灭恐惧的做好办法就是面对恐惧,奥利给
首先我们来看
我们在这里可以清楚的看见,这很明显就是一个表单嘛,那么既然是表单,那就好办了
有表单就有接口,那么来到我们xxl-job-admin的接口看看呢
嚯哟,原来一切的接口都在这里啊
还好没放弃,哭了哭了
那么我们一路追踪下去来到 添加任务这个接口的实现类方法
我们可以看见传入的参数就是这个XxlJobInfo
private int id; // 主键ID |
这里面有很多的参数信息,都很清楚明了
那么我们想想,再想想
接口有,参数信息我们也知道,那么我们不就可以直接调用他这个接口,传入想要的参数信息不就ok吗?
那么我们就不用再去可视化界面进行操作,那不就可以了吗?
意思好像是这个意思,那么哦们应该怎么去操作呢?
还有XXL-JOB这个是在另外一个项目上,而我们的却在另外一个项目上,那么我们怎么才能去调用这个接口呢?
那么就是用到远程调用了,这里我们使用的是RestTemplate这个来实现调用
你可以考虑使用openFeign来实现[CodeWorld-Cloud-Shop openFeign技术—奶妈级教学]
问题重重
那这样的还有一个问题,首先我们要在界面上操作是吧,那么要进入界面的第一步是什么呢?
登录。。对就是登录
要登录上去了才会使用到我们这些接口,如果没有登录那么就会被拦截掉
我们这里很清楚的看见,这里设置了对接口使用了拦截器
那么这里面有一个很清楚的注解 PermissionLimit
(ElementType.METHOD) |
有一个limit的属性,默认的是true,就是说如果设置limit为true的话就需要被拦截,需要登录才能调用
那么我们想到如果设置为false,是不是就可以不用登录调用了
是的,我们这里呢,就是这样做的
那么我们就需要重新写一个接口,然后在这个接口上加上这个注解并设置为false
那么到这里我们的问题就基本解决了
流程呢就是
1.在xxl-job-admin项目的原有基础上开发新的一个接口,加上 `PermissionLimit`并设置为false |
那么我们将在下一节继续讲解CodeWorld-Cloud-Shop XXL-JOB动态创建任务详解篇2—奶妈级教学
好了,本次的技术解析就到这里了?如果觉得不错的话,点亮一下小星星codeworld-cloud-shop
只看不点,不是好孩子哦!!!