当前位置: 首页 > wzjs >正文

网站建设-上寻模板安卓优化大师官方版本下载

网站建设-上寻模板,安卓优化大师官方版本下载,wordpress环境配置,手机设计网站公司在现代应用开发中,定时任务是一个常见的需求。比如,我们可能需要定时清理过期数据、定时发送邮件通知等。 操作流程 开启定时任务注解 在启动类添加注解EnableScheduling 设置时间(固定时间间隔) 使用 Scheduled 注解创建定时…

在现代应用开发中,定时任务是一个常见的需求。比如,我们可能需要定时清理过期数据、定时发送邮件通知等。

操作流程

开启定时任务注解

在启动类添加注解@EnableScheduling

设置时间(固定时间间隔)

使用 @Scheduled 注解创建定时任务十分简单,只需几行代码就能完成。@Scheduled 除了支持灵活的 cron 参数表达式,还支持简单的延时操作,如 fixedDelay(任务执行结束后延迟指定毫秒数再执行下一次)、fixedRate(固定频率,每隔指定毫秒数执行一次)。

@EnableScheduling
@SpringBootApplication
public class DingshiApplication {public static void main(String[] args) {SpringApplication.run(DingshiApplication.class, args);}//下面的两个方法在第一次启动项目的时候会执行一次//    半小时提醒一次@Scheduled(fixedRate = 30*60*1000)public void playSth1(){System.out.println("任务一"+ DateFormat.getDateInstance().format(new Date()));}//    四小时执行一次@Scheduled(fixedRate = 4*60*60*1000)public void playSth2(){System.out.println("任务二"+ DateFormat.getDateInstance().format(new Date()));}
}

cron表达式

Cron 表达式是一种用于指定定时任务执行时间的字符串表达式。它由 6 个字段组成,分别表示秒、分钟、小时、天数、月份和星期几。每个字段都可以使用特定的符号来指定时间范围或间隔。

Cron - 在线Cron表达式生成器

通用符号:, * - /
  • , :表示列出枚举值。例如:在 分钟 域使用5,20,表示在时间的分钟数为5,20时触发事件。
  • - :表示范围:例如在 分钟 域使用5-20,表示在时间的分钟数为5到20时每分钟都触发事件
  • * :表示匹配该域的任意值。假如在 分钟 域使用*,表示时间分钟数不做限制,分分钟都出发事件
  • / :表示起始时间开始触发,然后每个固定时间触发一次。例如在 分钟 域使用5/20,表示事件的分钟数为5时触发一次,后隔20分钟即25,45再分别触发一次。

spring中只可以使用6位。

0 0 2 1 * ?:每月一号凌晨两点触发。

0 10,44 14 ? 3 WED :3月的每个星期3下午两点10分和44分时触发

专有符号:
  • ?:只能用在DayofMonth和DayofWeek两个域,由于DayOfMonth和DayOfWeek互斥,需对其一进行设置。
  • L:表示最后,只能出现在DayofWeek和DayofMonth域。如果在DayofWeek域使用5L,意味着在最后一个星期四触发。
  • W:表示有效工作日(周一到周五),只能出现在DayofMoneth域,系统将在离指定日期的最近的有效工作日触发事件。
  • #:用于确定每个月第几个星期几,只能出现在DayofWeek域。例如在4#2,表示某月的第二个星期三
  • C:只能用在DayofMonth和DayofWeek两个域,需要关联日历,如果没关联可以忽略
转有符号:
  • 专有符号中除了?外,再Spring定时任务中都不支持。

spring异步多线程实现

@Async 是 Spring 框架中的一个任务异步执行注解,在定时任务中主要有以下作用:

  • 避免任务阻塞:Spring 中添加了 @Scheduled 注解的定时任务默认都在一个线程中执行,这意味着当某个定时任务执行时间较长时,其他定时任务会一直等待,出现排队现象。而使用 @Async 注解后,被注解的定时任务方法会使用新线程异步执行,避免了任务之间的相互阻塞。例如,有任务 A 需要长时间处理数据,任务 B 是定时发送简单通知,如果没有 @Async,任务 B 需等任务 A 完成才能执行;添加 @Async 后,任务 B 可在新线程中异步执行,不被任务 A 阻塞。
  • 提高执行效率:在存在多个定时任务的场景下,通过 @Async 让任务在不同线程中并行执行,充分利用多核 CPU 的性能,提高整体执行效率。比如,一个系统中有定时数据备份任务、定时日志清理任务和定时数据统计任务,使用 @Async 可使这些任务同时进行,而不是依次排队执行。
  • 增强系统稳定性:当某个定时任务因异常挂死时,若没有 @Async,会影响后续定时任务的执行;使用 @Async 后,每个任务在独立线程中运行,某个任务的异常不会导致其他任务无法执行,增强了系统的稳定性和健壮性。

不过需要注意,使用 @Async 时,Spring Boot 默认执行器线程池大小为 100 ,开发者也可根据实际需求自定义线程池配置,以更好地管理异步任务的执行。

样例展示

@EnableAsync
@EnableScheduling
@SpringBootApplication
public class DingshiApplication {public static void main(String[] args) {SpringApplication.run(DingshiApplication.class, args);}//下面的两个方法在第一次启动项目的时候会执行一次@Async@Scheduled(fixedRate = 5*1000)public void playSth1(){System.out.println("任务1线程:"+Thread.currentThread().getName());System.out.println("任务一"+ DateFormat.getDateInstance().format(new Date()));}@Async@Scheduled(cron = "0 0 2 1 * ? ")@Scheduled(fixedRate = 10*1000)public void playSth2(){System.out.println("任务2线程:"+Thread.currentThread().getName());System.out.println("任务二"+ DateFormat.getDateInstance().format(new Date()));}
}

http://www.dtcms.com/wzjs/142399.html

相关文章:

  • 做营销型网站需要注意哪些点北京网站优化实战
  • 新网站如何做sem做营销怎样才能吸引客户
  • 网站如何做整合营销抖音排名优化
  • 织梦网站织梦做英文版的百度指数在线查询前100
  • 昆山做网站的公司有哪些网站友情链接连接
  • 建设网站技术人员先进事迹谷歌地图下载
  • 广州公司注册费用seo诊断专家
  • 洛龙区网站制作建设费用怎么卸载windows优化大师
  • wordpress支持的视频优化大师win10能用吗
  • 商务平台网站建设合同搜索引擎
  • 顺通建设集团有限公司 网站独立站seo实操
  • 网站建设需要要多少钱seo搜索如何优化
  • 我的世界大橙子做皮肤的网站网络推广平台
  • 公司做网站费用记到哪个科目百度网站收录提交入口全攻略
  • 即墨做网站百度经验官网入口
  • 帮网站做推广赚钱吗竞价网络推广外包
  • 做海鲜代理在什么网站百度官方网站登录
  • 苏州专业做网站拼多多跨境电商平台
  • 长沙哪里做网站好深圳seo优化外包
  • 访问的网站显示建设中百度快照手机版
  • 深圳网站优化建设品牌建设
  • 广州白云区疫情最新数据seo关键词排名优化品牌
  • magento外贸网站开发网络营销的含义特点
  • 淘宝搜索排名做seo必须有网站吗
  • wordpress 多站点 主站点做网站推广的公司
  • 东西湖做网站搜索引擎优化的简称
  • 深圳个性化建网站公司凡科网免费建站
  • 网站开发外快最近发生的新闻大事
  • 沧州网站设计公司价格如何用手机创建网站
  • 做司法考试真题的网站北京官网seo收费