/**
* @Description
* @Author songwp
* @Date 2022/8/5 12:51
* @Version 1.0.0
**/
@Component
public class SalaryDetailTask { protected Logger log = LoggerFactory.getLogger(SalaryDetailTask.class); @Autowired
protected ISalaryDetailServiceExtend salaryDetailServiceExtend; /**
* @param uploadId
* @Date 2022/8/5 13:51
* @Author songwp
*/
public void TaskServiceImplExtend(String uploadId) {
Calendar myDate = Calendar.getInstance();
try {
// 获取工资详情信息
SalaryDetail salaryDetail = salaryDetailServiceExtend.lambdaQuery().eq(SalaryDetail::getRefUploadRecordId, uploadId).eq(SalaryDetail::getSendStatus, 1).list().get(0);
// 获取发送时间
myDate.setTime(salaryDetail.getSendTime());
// 任务执行时间(发送时间的2小时之后)
myDate.add(Calendar.HOUR, 2);
Date afterOneMinute = myDate.getTime();
log.info("Scheduled(执行器)在: afterOneMinute {}",afterOneMinute);
Timer timer = new Timer();
timer.schedule(new TimerTask() {
@Override
public void run() {
salaryDetailServiceExtend.lambdaUpdate()
.set(SalaryDetail::getConfirmStatus,1)
.eq(SalaryDetail::getConfirmStatus,0)
.eq(SalaryDetail::getRefUploadRecordId,uploadId)
.eq(SalaryDetail::getSendStatus,1)
.update();
log.info("所属上传记录id:uploadId:{}--下的工资条信息确认状态,由 startStatus:{} --更新为--> endStatus :{} 成功!",uploadId,salaryDetail.getConfirmStatus(),1);
}
}, afterOneMinute);
} catch (Exception e) {
log.error("根据 uploadId:{} 未匹配到推送成功的工资详情信息,任务执行出现异常!",uploadId,e);
}
}
}

SpringBoot 利用Timer 在指定时间2小时后执行任务的更多相关文章

  1. C#使用Timer.Interval指定时间间隔与指定时间执行事件

    C#中,Timer是一个定时器,它可以按照指定的时间间隔或者指定的时间执行一个事件. 指定时间间隔是指按特定的时间间隔,如每1分钟.每10分钟.每1个小时等执行指定事件: 指定时间是指每小时的第30分 ...

  2. java 获得当前时间前指定几个小时的时间?

    //@2016-12-13 获取当前时间,指定前面多少小时的时间 //返回格式YYYYMMDDHHMMSS public static String getBeforeHourTime(int iho ...

  3. crontab 在指定时间范围每隔2小时执行一次和指定时间执行实例

    crontab 在指定时间范围每隔2小时执行一次和指定时间执行,下面实例实现了:10-23点每两个小时执行一次,2点执行一次,分钟依次是1 2 3 ,没有24点的,晚上12点是0点注:*代表所有的取值 ...

  4. android 指定时间加一个小时算法

    import java.text.SimpleDateFormat; import java.util.Calendar; import java.util.Date; public class My ...

  5. 在指定时间干,必须干(kbmmw 中的事件调度)

    从去年开始,kbmmw 慢慢增加内涵,除了完善各种服务外,陆续增加和扩展了作为一个中间件必须有的功能, 例如,权限管理.日志系统.调度系统.内存调试等功能. 今天给大家介绍一下kbmmw 的调度事件, ...

  6. 挖一挖MongoDB的备份与还原(实现指定时间点还原和增量备份还原)

    一  研究背景需求 目前作者所在公司的MongoDB数据库是每天凌晨做一次全库完整备份,但数据库出现故障时,只能保证恢复到全备时间点,比如,00:30 做的完整备份,而出现故障是下午18:00,那么现 ...

  7. java 给指定时间加上天数or给当前日期加天数

    给指定日期加上天数: /** * 指定日期加上天数后的日期 * @param num 为增加的天数 * @param newDate 创建时间 * @return * @throws ParseExc ...

  8. 【转】Expire Google Drive Files 让Google Docs云盘共享连接在指定时间后自动失效

    最近在清理Google Docs中之前共享过的文件链接,发现Google Docs多人协作共享过的链接会一直存在,在实际操作中较不灵活.正好订阅的RSS推送了Pseric写的这篇文章 - Expire ...

  9. Android判断当前系统时间是否在指定时间的范围内(免消息打扰)

    /** * 判断当前系统时间是否在指定时间的范围内 * * @param beginHour * 开始小时,例如22 * @param beginMin * 开始小时的分钟数,例如30 * @para ...

  10. 利用jquery给指定的table动态添加一行、删除一行

    转自:http://www.cnblogs.com/linjiqin/p/3148181.html $("#mytable tr").find("td:nth-child ...

随机推荐

  1. #对顶堆#nssl 1477 赛

    分析 首先按小到大排序,考虑枚举两个都喜欢的个数\(i\) 那么只喜欢一个的个数各需要\(k-i\),剩下要补充到\(m-k*2+i\)个, 考虑用对顶堆维护大根堆大小仅有\(m-k*2+i\)即可 ...

  2. 2022 OpenHarmony年度运营报告

  3. js获取select标签的 value 和 text

    <select name="" id="test"> <option value="a1">yi</optio ...

  4. openGauss数据库将磁盘表转换为MOT

    openGauss 数据库将磁盘表转换为 MOT 一.将磁盘表转换为 MOT 方法 磁盘表直接转换为 MOT 尚不能实现,这意味着尚不存在将基于磁盘的表转换为 MOT 的 ALTER TABLE 语句 ...

  5. Unity 检测FPS工具

    检测FPS工具 public class FPS : MonoBehaviour { public float f_UpdateInterval = 0.5F; private float f_Las ...

  6. 第十篇:异步IO、消息队列

    一.协程 二.异步IO_Gevent 三.协程异步IO操作 四.事件驱动模型 五.IO多路复用 六.异步IO理论 一.回顾 线程 vs 进程 线程:CPU最小调度单位,内存共享: 线程同时修改同一份数 ...

  7. nginx重新整理——————nginx 的设计模型[八]

    前言 简单介绍一下nginx的设计模型,对我们设计程序还是有一定帮助的. 正文 这里先列一下模型哈,后面有深入篇,介绍的比较清楚. nginx 的处理模型: nginx 进程模型: 可以看到下面列出了 ...

  8. jenkins 持续集成和交付 —— 触发器(六)

    前言 什么是触发器呢?当某种条件达到的时候将会触发某个机关. 正文 jenkins 内置4种触发器: 1.触发远程构建 2.其他工程构建后触发 3.定时触发 4.轮询SCM 那么就来介绍一下这几种吧. ...

  9. C# 冻结Excel窗口以锁定行列、或解除冻结

    在处理大型Excel工作簿时,有时候我们需要在工作表中冻结窗格,这样可以在滚动查看数据的同时保持某些行或列固定不动.冻结窗格可以帮助我们更容易地导航和理解复杂的数据集.相反,当你不需要冻结窗格时,你可 ...

  10. 我自己的JdbcTemplate

    import java.sql.Connection; import java.sql.PreparedStatement; import java.sql.ResultSet; import jav ...