Java判断时间间隔来决定任务执行

数据库中的任务记录表的某条记录,状态一直无法变更,导致整个任务进程卡住,看了代码如下,
在这里插入图片描述正常情况是要走到这个else里面,执行dockingGroup.setStatus(JobStatus.FAILED.getCode());将任务状态改为失败的
,查了一下until的用法:
通过gpt可以知道:
在这里插入图片描述

通过代码字面意思也能看出,是时间相差900秒以上的意思,但是很奇怪,没有改变状态,这里我试了一下:
在这里插入图片描述
在这里插入图片描述
实体类对象为LocalDateTime,数据库为datetime
任务更新时间为2023-09-13 15:35:40
main方法如下:

 public static void main(String[] args) throws ParseException {

        String timeString = "2023-09-13 15:35:40";
        LocalDateTime localDateTime = LocalDateTime.parse(timeString, DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss"));
        LocalDateTime now = LocalDateTime.now();
        if (LocalDateTime.now().until(localDateTime, ChronoUnit.SECONDS) > 900){
            System.out.println("已经超时");
        }else {
            System.out.println("未超时");
        }
    }

将任务日期格式化为LocalDateTime对象,再进行比较
今天已经14号,理论上肯定是超时的,运行结果如下:
在这里插入图片描述
很奇怪,都间隔两天了,竟然显示未超时,后来发现,参数的顺序反了:
在这里插入图片描述
这里就像做减法,一定要注意顺序, 例如 9和5之间的间隔一定大于2,9-5>2没毛病但是5-9>2肯定不成立的

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值