关于Job “initrevertslipmain”中有两个判断的问题(isnew和isnew1)

博客介绍了页面状态判断及对应的数据处理方式。通过isnew判断新建或编辑页面,新建时生成日期并用hashmap存记录;用isnew1判断首次或再次进入编辑页面,首次从数据库读数据执行getinfo,再次则从页面读取数据不执行。
isnew:判断是新建页面还是编辑页面。新建页面时要产生生成日期,新建hashmap储存新记录,而编辑页面则不用。
isnew1:判断是首次进入编辑页面还是编辑好保存后再回到编辑页面。首次进入编辑页面时页面数据是从数据库中读取出来的,所以要执行getinfo,再次进入编辑页面时页面中数据是在页面上手动修改的,要直接从页面读取,所以不执行getinfo。
在 Quartz 框架中,同一组中存在多个触发器多个 Job 的情况较为常见,以下详细分析这种情况: ### 执行情况 多个触发器多个 Job 可以组合出不同的执行场景。每个触发器可以关联一个或多个 Job,多个触发器也可以关联同一个 Job。当触发器触发时,与之关联的 Job 就会被执行。例如,在同一组 `group1` 中有两个触发器 `trigger1` `trigger2`,两个 Job `job1` `job2`。`trigger1` 关联 `job1`,`trigger2` 关联 `job2`,当 `trigger1` 触发时,`job1` 会执行;当 `trigger2` 触发时,`job2` 会执行。 ### 优先级影响 同一组中的触发器可以设置不同的优先级。当多个触发器同时触发时,调度器会根据优先级来决定先执行哪个触发器关联的 Job。优先级高的触发器关联的 Job 会优先执行。例如,`trigger1` 优先级为 10,`trigger2` 优先级为 5,当它们同时触发时,`trigger1` 关联的 `job1` 会先执行。 ### 调度计划类型 同一组中的触发器可以使用不同的调度计划类型,如 SimpleSchedule、CronSchedule 等。不同的调度计划类型决定了触发器的触发时间频率。例如,`trigger1` 使用 SimpleSchedule,每 10 秒触发一次;`trigger2` 使用 CronSchedule,每天早上 8 点触发。 ### 代码示例 ```java import org.quartz.*; import org.quartz.impl.StdSchedulerFactory; public class MultipleTriggersAndJobsExample { public static void main(String[] args) throws SchedulerException { // 创建调度器 Scheduler scheduler = StdSchedulerFactory.getDefaultScheduler(); // 定义 Job1 JobDetail job1 = JobBuilder.newJob(MyJob1.class) .withIdentity("job1", "group1") .build(); // 定义 Job2 JobDetail job2 = JobBuilder.newJob(MyJob2.class) .withIdentity("job2", "group1") .build(); // 定义 SimpleSchedule 触发器 1 SimpleScheduleBuilder simpleSchedule1 = SimpleScheduleBuilder.simpleSchedule() .withIntervalInSeconds(10) .repeatForever(); Trigger trigger1 = TriggerBuilder.newTrigger() .withIdentity("trigger1", "group1") .forJob(job1) .withSchedule(simpleSchedule1) .withPriority(10) .build(); // 定义 CronSchedule 触发器 2 CronScheduleBuilder cronSchedule = CronScheduleBuilder.cronSchedule("0 0 8 * * ?"); Trigger trigger2 = TriggerBuilder.newTrigger() .withIdentity("trigger2", "group1") .forJob(job2) .withSchedule(cronSchedule) .withPriority(5) .build(); // 将 Job 触发器添加到调度器 scheduler.scheduleJob(job1, trigger1); scheduler.scheduleJob(job2, trigger2); // 启动调度器 scheduler.start(); } } class MyJob1 implements Job { @Override public void execute(JobExecutionContext context) throws JobExecutionException { System.out.println("Job1 is running..."); } } class MyJob2 implements Job { @Override public void execute(JobExecutionContext context) throws JobExecutionException { System.out.println("Job2 is running..."); } } ```
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值