java间隔通知_java – 24小时间隔安排

我想知道安排代码的最佳方法.我有一个代码可以生成报告并以24小时的间隔向一组人发送邮件.它是基于控制台的java应用程序.我想知道安排它的最佳方法.有时我可能需要将其更改为12小时间隔.但是,应用程序不会在间隔之间执行任何其他任务.

解决方法:

这里有一些方法,从最简单到最全面:

> sleep():

TimeUnit.HOURS.sleep(24)

这种方法很简单,做工和睡24小时.实际上它有点复杂,因为报告生成需要一些时间,所以你必须稍微睡一会儿.以下所有解决方案都透明地处理.

> java.util.Timer#scheduleAtFixedRate() – 简单的内置Java解决方案.

> spring中的@Scheduled注释或ejb中的@Schedule – 更复杂但更强大,例如接受cron表达式:

@Scheduled(fixedRate=DateUtils.MILLIS_PER_DAY)

public void generateReport() {

//...

}

> quartz-scheduler – 完整的Java调度程序,具有群集和故障转移,失火处理,完整的cron支持等.非常全面:

newTrigger().

withSchedule(

simpleSchedule().

withIntervalInHours(24).

repeatForever()

).build();

要么

newTrigger().

withSchedule(

cronSchedule().

dailyAtHourAndMinute(17, 30). //17:30

).build();

标签:java,multithreading,spring,ejb,cron,quartz-scheduler,cron

来源: https://codeday.me/bug/20190902/1790546.html

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值