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

残疾人无障碍网站怎么做网站开发公司云鲸互创怎么联系

残疾人无障碍网站怎么做,网站开发公司云鲸互创怎么联系,网页设计制作网站代码,怎么用目录建wordpress站点各位被Thread.sleep()和ScheduledExecutorService折磨的道友们!今天要解锁的是Java界任务调度至尊法宝——Quartz!这货能让你像玉皇大帝安排天庭日程一样,精确控制每个任务的执行时机!准备好告别蹩脚的手动定时器了吗?…

各位被Thread.sleep()ScheduledExecutorService折磨的道友们!今天要解锁的是Java界任务调度至尊法宝——Quartz!这货能让你像玉皇大帝安排天庭日程一样,精确控制每个任务的执行时机!准备好告别蹩脚的手动定时器了吗? ⏰


一、筑基篇:初识Quartz

1.1 法宝祭炼(添加依赖)
<!-- Spring Boot集成版(推荐) -->
<dependency><groupId>org.springframework.boot</groupId><artifactId>spring-boot-starter-quartz</artifactId>
</dependency><!-- 原生使用版 -->
<dependency><groupId>org.quartz-scheduler</groupId><artifactId>quartz</artifactId><version>2.3.2</version>
</dependency>
1.2 核心概念三件套
  • Job:要执行的任务(如:“发送仙丹提醒”)
  • Trigger:触发时机(如:“每月初一子时”)
  • Scheduler:调度中心(天庭的日程总管)

二、金丹篇:基础任务调度

2.1 定义Job(编写仙术)
public class SendPillJob implements Job {@Overridepublic void execute(JobExecutionContext context) {// 获取传递的参数JobDataMap dataMap = context.getJobDetail().getJobDataMap();String userName = dataMap.getString("user");System.out.println(LocalDateTime.now() + ":给" + userName + "发送仙丹提醒!");}
}
2.2 配置Trigger(天时安排)
// 简单触发器(每30秒执行一次)
Trigger trigger = TriggerBuilder.newTrigger().withIdentity("pillTrigger").startNow().withSchedule(SimpleScheduleBuilder.simpleSchedule().withIntervalInSeconds(30).repeatForever()).build();// Cron触发器(每天上午8点执行)
Trigger cronTrigger = TriggerBuilder.newTrigger().withIdentity("morningTrigger").withSchedule(CronScheduleBuilder.dailyAtHourAndMinute(8, 0)).build();
2.3 启动调度(开坛做法)
// 创建任务详情
JobDetail job = JobBuilder.newJob(SendPillJob.class).withIdentity("sendPillJob").usingJobData("user", "张无忌") // 传参.build();// 创建调度器
Scheduler scheduler = StdSchedulerFactory.getDefaultScheduler();
scheduler.scheduleJob(job, trigger);
scheduler.start();

三、元婴篇:Spring Boot集成

3.1 自动配置(偷懒大法)
@Configuration
public class QuartzConfig {@Beanpublic JobDetail morningPillJobDetail() {return JobBuilder.newJob(SendPillJob.class).withIdentity("morningPillJob").storeDurably().build();}@Beanpublic Trigger morningPillTrigger() {return TriggerBuilder.newTrigger().forJob(morningPillJobDetail()).withIdentity("morningPillTrigger").withSchedule(CronScheduleBuilder.cronSchedule("0 0 8 * * ?")).build();}
}
3.2 注入Service(灵力融合)
public class SendPillJob implements Job {@Autowired // 通过SpringBeanJobFactory注入private PillService pillService;@Overridepublic void execute(JobExecutionContext context) {pillService.sendReminder();}
}

四、化神篇:高级特性

4.1 持久化存储(渡劫不丢数据)
# application.yml
spring:quartz:job-store-type: jdbc # 使用数据库存储jdbc:initialize-schema: always # 自动建表properties:org.quartz.jobStore.class: org.quartz.impl.jdbcjobstore.JobStoreTXorg.quartz.jobStore.driverDelegateClass: org.quartz.impl.jdbcjobstore.StdJDBCDelegateorg.quartz.jobStore.tablePrefix: QRTZ_
4.2 集群模式(分身协作)
spring:quartz:properties:org.quartz.jobStore.isClustered: trueorg.quartz.scheduler.instanceId: AUTO # 自动生成实例IDorg.quartz.jobStore.acquireTriggersWithinLock: true
4.3 监听器(天眼通)
public class JobListener implements org.quartz.JobListener {@Overridepublic String getName() { return "globalJobListener"; }@Overridepublic void jobToBeExecuted(JobExecutionContext context) {System.out.println("任务即将执行:" + context.getJobDetail().getKey());}
}// 注册监听器
scheduler.getListenerManager().addJobListener(new JobListener());

五、大乘篇:最佳实践

5.1 异常处理(渡劫护盾)
public class RetryJob implements Job {@Overridepublic void execute(JobExecutionContext context) throws JobExecutionException {try {// 业务代码...} catch (Exception e) {// 失败后重试JobExecutionException e2 = new JobExecutionException(e);e2.setRefireImmediately(true);throw e2;}}
}
5.2 动态调度(天机可变)
@Autowired
private Scheduler scheduler;// 动态添加任务
public void addDynamicJob(String jobName, String cron) throws SchedulerException {Trigger trigger = TriggerBuilder.newTrigger().withIdentity(jobName + "Trigger").withSchedule(CronScheduleBuilder.cronSchedule(cron)).build();JobDetail job = JobBuilder.newJob(DynamicJob.class).withIdentity(jobName).usingJobData("param", "value").build();scheduler.scheduleJob(job, trigger);
}

六、渡劫警示(常见天劫)

  1. 时区问题

    // 明确指定时区
    CronScheduleBuilder.cronSchedule("0 0 12 * * ?").inTimeZone(TimeZone.getTimeZone("Asia/Shanghai"))
    
  2. 任务阻塞

    • 使用@DisallowConcurrentExecution禁止并发执行同一Job
    • 长时间任务考虑拆分
  3. 内存泄漏

    • 及时调用scheduler.shutdown()
    • 避免在Job中创建大量临时对象

飞升指南:调度策略

场景推荐Trigger示例
简单定时循环SimpleTrigger每30秒执行一次
固定时间点CronTrigger每天8:00执行
延迟单次任务SimpleTrigger.withRepeatCount(0)5分钟后执行一次
工作日调度CronTrigger + 特殊日历周一到周五9:00执行


文章转载自:

http://JHzLZW8F.qgtfL.cn
http://zz8NMgwk.qgtfL.cn
http://iZDGEcq1.qgtfL.cn
http://zoTK45zn.qgtfL.cn
http://HPhF4wPW.qgtfL.cn
http://oH0yD7Vn.qgtfL.cn
http://3yAsysWD.qgtfL.cn
http://moR0cyBJ.qgtfL.cn
http://OMvyn4v5.qgtfL.cn
http://ZFNjdCZF.qgtfL.cn
http://ynipXMDs.qgtfL.cn
http://IFE5Mi4L.qgtfL.cn
http://sZSS9GCM.qgtfL.cn
http://nawHxIwP.qgtfL.cn
http://mL6An5XB.qgtfL.cn
http://BKJqFkGk.qgtfL.cn
http://4qfvxpNr.qgtfL.cn
http://H0pAH55C.qgtfL.cn
http://zIwKQdPW.qgtfL.cn
http://olfXpBo8.qgtfL.cn
http://6WFGSNro.qgtfL.cn
http://Ay5vPaCy.qgtfL.cn
http://GTYIEOPb.qgtfL.cn
http://7uadqjEf.qgtfL.cn
http://Pti9LX0w.qgtfL.cn
http://HPyDYknh.qgtfL.cn
http://AAGOaq8j.qgtfL.cn
http://ZHWhGxYp.qgtfL.cn
http://z0XokmFb.qgtfL.cn
http://CKXeYH3N.qgtfL.cn
http://www.dtcms.com/wzjs/680923.html

相关文章:

  • 买卖平台有哪些网站中国建设银行u盾官方网站
  • 职业教育培训网站海南做公司网站
  • 如何查询网站的备案信息网站做一样的算侵权么
  • 关于重新建设网站的申请表网站规划的要素不包括
  • 邯郸哪个公司做网站好网站 防采集
  • 怎么修改网站标题找大连做企业网站的公司
  • python做的网站多吗网站域名备案主机名
  • 陕煤建设集团韩城分公司网站企业信息公示系统 全国
  • 教育网站建设改版烟台网站建设方案策划
  • 广西建设教育协会网站搜索引擎推广效果
  • 如何建立个人免费网站用什么网站做动感相册
  • 福建泉州做网站公司微电影网站源码xiazai
  • 做电影种子下载网站违法吗网站开发建
  • 低功耗集成主板做网站成免费crm特色大爆料
  • 河北公司网站制作设计从零开始wordpress主题
  • 免费制作软件的网站建设内部网站目的
  • 诸城网站建设wordpress 阅读插件
  • 茶叶公司网站源码网站建设一百互联
  • 博罗网站建设费用h5网站建设+案例
  • 做模块高考题的网站免费网上商城
  • wordpress 全站过滤做的网站在百度找不到了
  • 深圳建站公司优化做排行网站
  • 聊天网站建设重庆广告公司十大排名
  • 快速设计网站wordpress 破解后台
  • 湘潭网站建设优等磐石网络网站设计一般包括网站结构设计
  • 个人做流量大的网站开源手机网站模板
  • 做高端生活方式的网站wordpress蜘蛛记录插件
  • 永兴做网站wordpress导航主题下载
  • 全屏网站设计尺寸网站正在建设代码
  • 网站建设后期服务收费标准怀化建设企业网站