【jeecg-boot项目开发crm】:平台技术点——day05【Java定时任务解决方案:八、job并发及持久化】:图灵课堂

八、job并发及持久化

Job中需要掌握的两个注解:

  • @DisallowConcurrentExecution
  • @PersistJobDataAfterExecution

场景一、有些场景需要这种规避并发访问的问题。

  • job中给了1秒的间隔时间,每过一秒执行一次任务,每次任务的jobDetail实例是不一样的
  • 虽然每次的任务内容没有发生变化,但是实例却不一样了。

【验证】:每次任务的jobDetail实例是不一样的
在这里插入图片描述
在这里插入图片描述

场景二、不想要多线程执行:因为上一个任务还没有执行完,定时1秒后,不管设不设置sleep都执行下一个任务了。

  • 我们希望上一个任务没有执行完的时候,后一个任务不让他立即执行。

这时候我们就可以使用:@DisallowConcurrentExecution
在这里插入图片描述

  • 不是同一个实例,不过是同一个job定义。
    代码演示:
    在这里插入图片描述
    加了这个注解之后,就可以变成并发的访问方式,变成MyJob.java中设置的3秒一次

场景三、每一次的JobDataMap实例也是不一样的,此时不希望每次都变。

【演示】:不加注解后每次JobDataMap实例不一样

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

这时候就可以使用:@PersistJobDataAfterExecution注解

  • 持久化JobDetail中的JobDataMap【对trigger中的datamap无效】
    在这里插入图片描述

代码演示:
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

狂野小白兔

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值