钓鱼网站的域名怎么不稳定相亲网站排名前十名
- 作者: 五速梦信息网
- 时间: 2026年03月21日 11:23
当前位置: 首页 > news >正文
钓鱼网站的域名怎么不稳定,相亲网站排名前十名,杭州建设教育网站,写手代写平台目录 1.定时任务 1.quartz说明 2.Quartz提供了不同的数据存储策略以管理作业调度信息#xff1a; 1.Quartz引入依赖 2.开发定时任务 #xff08;1#xff09;更新定时任务 #xff08;2#xff09;停止定时任务 #xff08;3#xff09;唤醒定时任务 #xff…目录 1.定时任务 1.quartz说明 2.Quartz提供了不同的数据存储策略以管理作业调度信息 1.Quartz引入依赖 2.开发定时任务 1更新定时任务 2停止定时任务 3唤醒定时任务 4删除定时任务 1.定时任务 定时任务的实现途径多种多样以下是一些不同的方法
- 在应用程序的启动类中引入EnableScheduling注解以此激活定时任务的功能。随后可以利用注解Scheduled配合Cron表达式例如Scheduled(cron 0/1 * * * * )来定义任务的执行频率同时确保这些任务被注册为Spring管理的Bean。
- 采用外部任务调度框架例如xxl-job或elastic-Job这些框架提供了额外的功能和灵活性以满足更复杂的调度需求。
- 使用Quartz作为底层实现许多第三方框架实际上都是基于Quartz构建的它们提供了更高级的调度功能和更好的集成支持。 1.quartz说明 Quartz是一个纯Java编写的工作调度框架它包含以下核心组件
- 调度器Scheduler ? ?这是Quartz中负责调度作业的核心组件。它通过与触发器Trigger和作业详情JobDetail的交互来控制作业的执行。调度器作为一个容器保存了作业和触发器它们在调度器中都有唯一的组和名称这些标识符用于调度器内部查找和识别特定的作业或触发器。触发器和作业详情的组名和名称必须是唯一的尽管它们可以相同因为它们属于不同的类别。
- 触发器Trigger ? ?在Quartz中触发器定义了作业执行的时间规则。它有两个主要的子类型SimpleTrigger和CronTrigger分别用于简单的周期性调度和复杂的时间表调度。
- 作业详情JobDetail ? ?这包含了Quartz中作业的具体信息包括作业的唯一标识和要执行的任务。作业详情还允许通过JobDataMap传递额外的数据给作业。
- 作业Job ? ?这是Quartz中定义作业具体执行逻辑的接口。实现这个接口的类包含了作业执行的核心代码。
- 作业构建器JobBuilder ? ?这是一个工具类用于构建作业实例并定义作业的属性如名称和组名。构建的实例将代表一个实际要执行的作业。
- 触发器构建器TriggerBuilder ? ?这个工具类用于创建触发器实例定义触发器的属性和行为。
- 监听器Listener ? ?Quartz提供了多种监听器包括作业监听器JobListener、触发器监听器TriggerListener和调度器监听器SchedulerListener它们用于监控作业、触发器和调度器的事件和状态变化。 2.Quartz提供了不同的数据存储策略以管理作业调度信息 内存存储RAMJobStore Quartz默认使用内存作为存储介质这种方式因其直接在内存中操作而具有极高的性能。然而这种存储方式不具备数据持久性一旦应用程序崩溃或需要重新部署所有存储的调度信息将无法保留。 数据库存储 通过将调度信息存储在数据库中Quartz可以实现单实例或集群部署便于对大量作业进行集中管理和动态控制如暂停、停止或修改作业。即使在服务器关闭或重启后作业的调度信息也能得以保留。不过这种存储方式的性能会受到数据库连接速度的影响。 1.Quartz引入依赖 首先要在Springboot项目可以直接引入下面依赖 dependencygroupIdorg.springframework.boot/groupIdartifactIdspring-boot-starter-quartz/artifactId/dependency如果是非Springboot项目可以引入以下依赖 dependencygroupIdorg.quartz-scheduler/groupIdartifactIdquartz/artifactIdversion2.2.3/version /dependency2.开发定时任务 首先我们需要创建一个类 package com.example.yin.taskjob;import org.quartz.Job; import org.quartz.JobExecutionContext; import org.quartz.JobExecutionException;public class TaskJob implements Job {Overridepublic void execute(JobExecutionContext jobExecutionContext) throws JobExecutionException {System.out.println(定时任务执行:System.currentTimeMillis());} }接着我们需要为他设置接口。 public interface QuartzService {public R addCronJob(String jobName, String cron, String jobClassName, String triggerName);public R updateCronJob(String jobName,String cron, String jobClassName);public R pauseCronJob(String jobName, String triggerName);public R resumeCronJob(String jobName, String triggerName);public R deleteCronJob(String jobName, String jobGroup, String triggerName, String triggerGroup); }接口中的方法用于添加、更新、暂停、恢复和删除基于Cron表达式的定时作业返回类型为R的对象R可能是一个自定义的响应类用于封装方法执行的结果请根据自己项目来修改 然后定时任务继承TaskJob并实现其方法 Service public class QuartServiceImpl implements QuartzService {Autowiredprivate Scheduler scheduler;private static final String DEFAULT_JOB_GROUP default_job_group;private static final String DEFAULT_TRIGGER_GROUP default_trigger_group;private static final String TRIGGERPRE Trigger;Overridepublic R addCronJob(String jobName, String cron, String jobClassName, String triggerName) {try{JobKey jobKey JobKey.jobKey(jobName, DEFAULT_JOB_GROUP);if (scheduler.checkExists(jobKey)){return R.fail(【添加定时任务】该作业已存在);}//构建jobJobDetail job (JobDetail) JobBuilder.newJob((Class? extends Job) Class.forName(jobClassName)).withIdentity(jobKey).build();//Cron表达式定时构造器CronScheduleBuilder cronSchedule CronScheduleBuilder.cronSchedule(cron);//构建TriggerTrigger trigger TriggerBuilder.newTrigger().withIdentity(TriggerKey.triggerKey(TRIGGER_PRE triggerName, DEFAULT_TRIGGER_GROUP)).withSchedule(cronSchedule).build();//启动调度scheduler.scheduleJob(job, trigger);scheduler.start();}catch (Exception e){return R.fail(创建定任务失败原因是 e.getMessage());}return R.success(创建定时任务成功, jobName ,任务表达式 cron);}这个方法提供了一个完整的流程用于将一个新的Cron作业添加到Quartz调度器中并确保作业按照指定的Cron表达式执行。通过动态加载作业类和构建触发器这个方法提供了灵活的作业调度能力。 然后让我们创建一个控制类 RestController RequestMapping(/quartz) public class QuartzController {Autowiredprivate QuartzService quartzService;PostMapping(createJob)public R createJob(RequestBody JobInfo jobInfo) {return quartzService.addCronJob(jobInfo.getJobName(),jobInfo.getCron(),jobInfo.getJobClassName(), jobInfo.getTriggerName());}到这里其实一个简单的Quartz定时任务已经完成了 我们可以去swagger-ui测试效果不会使用swagger-ui的小伙伴可以使用其他接口软件 测试接口推荐 这里推荐几个接口地址供小伙伴自行选择 1.Apifox - API 文档、调试、Mock、测试一体化协作平台。拥有接口文档管理、接口调试、Mock、自动化测试等功能接口开发、测试、联调效率提升 10 倍。最好用的接口文档管理工具接口自动化测试工具。[这里是图片001]https://apifox.com/2.Postman: The World’s Leading API Platform | Sign Up for Free。支持各种 HTTP 请求方法并且提供了强大的测试脚本功能你可以为每个请求编写测试用例自动化你的 API 测试过程。建议科学上网使用 3.The Collaborative API Development Platform - Insomnia。是一个轻量级的 REST 客户端界面干净利落使用起来非常直观虽然 Insomnia 主要聚焦在 API 测试上但它也提供了基本的文档生成功能。 spring boot项目控制台会显示此效果 最后我们可以在实现方法中添加更新定时任务停止定时任务唤醒定时任务删除定时任务 1更新定时任务 Overridepublic R updateCronJob(String jobName, String cron, String triggerName) {try{TriggerKey triggerKey TriggerKey.triggerKey(TRIGGER_PRE triggerName, DEFAULT_TRIGGER_GROUP);CronScheduleBuilder cronSchedule CronScheduleBuilder.cronSchedule(cron);CronTrigger trigger (CronTrigger) scheduler.getTrigger(triggerKey);trigger trigger.getTriggerBuilder().withIdentity(triggerKey).withSchedule(cronSchedule).build();scheduler.rescheduleJob(triggerKey, trigger);return R.success(更新定时任务成功);}catch (Exception e){return R.fail(更新定时任务失败原因为 e.getMessage());}}2停止定时任务 Overridepublic R pauseCronJob(String jobName, String triggerName) {try {TriggerKey triggerKey TriggerKey.triggerKey(TRIGGER_PRE triggerName, DEFAULT_TRIGGER_GROUP);JobKey jobKey JobKey.jobKey(jobName, DEFAULT_JOB_GROUP);// 检查作业和触发器是否存在if (!scheduler.checkExists(jobKey) || !scheduler.checkExists(triggerKey)) {return R.fail(作业或触发器不存在);}// 暂停触发器scheduler.pauseTrigger(triggerKey);return R.success(暂停定时任务成功);} catch (Exception e) {return R.fail(暂停定时任务失败原因是 e.getMessage());}}3唤醒定时任务 Overridepublic R resumeCronJob(String jobName, String triggerName) {try {// 构建触发器keyTriggerKey triggerKey TriggerKey.triggerKey(TRIGGER_PRE triggerName, DEFAULT_TRIGGER_GROUP);// 恢复触发器scheduler.resumeTrigger(triggerKey);return R.success(恢复定时任务成功);} catch (Exception e) {return R.fail(恢复定时任务失败原因是 e.getMessage());}}4删除定时任务 Overridepublic R deleteCronJob(String jobName, String jobGroup, String triggerName, String triggerGroup) {try {JobKey jobKey JobKey.jobKey(jobName, DEFAULT_JOB_GROUP);TriggerKey triggerKey TriggerKey.triggerKey(TRIGGER_PRE triggerName, DEFAULT_TRIGGER_GROUP);if (!scheduler.checkExists(jobKey) ||!scheduler.checkExists(triggerKey)) {return R.fail(【删除定时任务】作业或触发器不存在);}scheduler.unscheduleJob(triggerKey);scheduler.deleteJob(jobKey);return R.success(删除定时任务成功, jobName);} catch (Exception e) {return R.fail(删除定时任务失败原因为 e.getMessage());}}在添加完所有方法后将相应的控制类补全swagger-ui就会呈现所有接口 以下是剩余控制类方法 PostMapping(updateJob)public R updateJob(RequestBody JobInfo jobInfo) {return quartzService.updateCronJob(jobInfo.getJobName(), jobInfo.getCron(), jobInfo.getTriggerName());}PostMapping(pauseJob)public R pauseJob(RequestBody JobInfo jobInfo) {return quartzService.pauseCronJob(jobInfo.getJobName(), jobInfo.getTriggerName());}PostMapping(resumeJob)public R resumeJob(RequestBody JobInfo jobInfo) {return quartzService.resumeCronJob(jobInfo.getJobName(), jobInfo.getTriggerName());}DeleteMapping(deleteJob)public R deleteJob(RequestBody JobInfo jobInfo) {return quartzService.deleteCronJob(jobInfo.getJobName(), jobInfo.getJobGroup(), jobInfo.getTriggerName(), jobInfo.getTriggerGroup());} }我们可以到swagger-ui去查看接口是否齐全 可以看到我们的实现接口是正确显示的到这里Spring boot整合Quartz项目就算完成了。
- 上一篇: 钓鱼网站盗号wordpress源代码如何在本地编辑器
- 下一篇: 钓鱼网站生成器英文版网站建设
相关文章
-
钓鱼网站盗号wordpress源代码如何在本地编辑器
钓鱼网站盗号wordpress源代码如何在本地编辑器
- 技术栈
- 2026年03月21日
-
垫江网站建设wordpress 100万数据
垫江网站建设wordpress 100万数据
- 技术栈
- 2026年03月21日
-
垫江网站建设djrckj自己做发小说网站
垫江网站建设djrckj自己做发小说网站
- 技术栈
- 2026年03月21日
-
钓鱼网站生成器英文版网站建设
钓鱼网站生成器英文版网站建设
- 技术栈
- 2026年03月21日
-
钓鱼网站图片网站开发运行环境
钓鱼网站图片网站开发运行环境
- 技术栈
- 2026年03月21日
-
钓鱼转转网站在线生成网络安全厂家排名
钓鱼转转网站在线生成网络安全厂家排名
- 技术栈
- 2026年03月21日






