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

广州天河网站制作汕头网站推广

广州天河网站制作,汕头网站推广,门户网站模板html5,如何做网站优化在项目我们会有很多需要在某一特定时刻自动触发某一时间的需求,例如我们提交订单但未支付的超过一定时间后需要自动取消订单。 定时任务实现的几种方式: Timer:java自带的java.util.Timer类,使用这种方式允许你调度一个java.util…

在项目我们会有很多需要在某一特定时刻自动触发某一时间的需求,例如我们提交订单但未支付的超过一定时间后需要自动取消订单。

定时任务实现的几种方式:

  • Timer:java自带的java.util.Timer类,使用这种方式允许你调度一个java.util.TimerTask任务。这种方式可以让你的程序按照某一个频度执行,但不能在指定时间运行。一般用的较少。

  • ScheduledExecutorService:也是jdk自带的类;基于线程池设计的定时任务类,每个调度任务都会分配到线程池中的一个线程去执行,既任务是并发执行,互不影响。

  • Spring Task:Spring3.0以后自带的task,相当于一个轻量级的Quartz,但其使用起来比Quartz简单很多。

  • Quartz:一个功能比较强大的的调度器,可以让你的程序在指定时间执行,也可以按照某一个频度执行,配置起来稍显复杂。

下面我们看一下如何通过Scheduled实现SpringBoot 的定时任务。

1. 启用定时任务

在springboot主类增加注解@EnableScheduling启用定时任务

import org.springframework.boot.SpringApplication;import org.springframework.boot.autoconfigure.SpringBootApplication;import org.springframework.scheduling.annotation.EnableScheduling;
@SpringBootApplication@EnableSchedulingpublic class ScheduledApplication {
    public static void main(String[] args) {        SpringApplication.run(SpringBootScheduledApplication.class, args);    }}

2.创建任务类

@Slf4j@Componentpublic class ScheduledService {    @Scheduled(cron = "0/20 * * * * *")    public void scheduled(){        log.info("1使用cron  {}",System.currentTimeMillis());    }    @Scheduled(fixedRate = 3000)    public void scheduled1() {        log.info("2使用fixedRate{}", System.currentTimeMillis());    }    @Scheduled(fixedDelay = 3000)    public void scheduled2() {        log.info("3fixedDelay{}",System.currentTimeMillis());    }}

默认为单线程,可以看到三个定时任务都已经执行,并且使同一个线程中串行执行,如果只有一个定时任务,这样做肯定没问题,当定时任务增多,如果一个任务卡死,会导致其他任务也无法执行。

3.实现多线程任务

3.1 添加配置类并启用异步事件

@Configuration@EnableAsyncpublic class ScheduledAsyncConfig {
private int corePoolSize = 20;private int maxPoolSize = 500;private int queueCapacity = 20;
@Beanpublic Executor taskExecutor() {ThreadPoolTaskExecutor executor = new ThreadPoolTaskExecutor();executor.setCorePoolSize(corePoolSize);executor.setMaxPoolSize(maxPoolSize);executor.setQueueCapacity(queueCapacity);executor.initialize();return executor;}}

3.2,修改2.中的定时任务的类或者方法上添加@Async​​​​​​​

@Slf4j@Component@Asyncpublic class ScheduledService {    @Scheduled(cron = "0/20 * * * * *")    public void scheduled(){        log.info("1使用cron  {}",System.currentTimeMillis());    }    @Scheduled(fixedRate = 3000)    public void scheduled1() {        log.info("2使用fixedRate{}", System.currentTimeMillis());    }    @Scheduled(fixedDelay = 3000)    public void scheduled2() {        log.info("3fixedDelay{}",System.currentTimeMillis());    }}​​​​​​​
http://www.mnyf.cn/news/43135.html

相关文章:

  • 网站建设问题广告外链购买交易平台
  • 水资源论证网站建设哈尔滨优化网站方法
  • 江西省新冠肺炎疫情seo基础优化包括哪些内容
  • 响应式网站建设福州百度指数数据分析平台入口
  • 简繁网站怎么做今天发生的重大新闻内容
  • 网站做的不好会有什么后果网站关键词排名
  • 东阿做网站推广长沙做引流推广的公司
  • 网站独立开发个人怎么在百度上打广告
  • 自建网站营销公司如何在百度宣传
  • 网站建设结束的售后服务百度收录量
  • wordpress建站服务器seo外链优化策略
  • 林州网站建设百度推广怎么开户
  • 浙江品牌网站建设长沙百度关键词推广
  • 给人做网站的百度广告点击一次多少钱
  • mac可以做网站开发吗优质友情链接
  • 佛山营销型网站建设公司跨境电商平台注册开店流程
  • 某企业网站建设论文宁德市人民医院
  • 做网站的视频教程网站收录登录入口
  • 企业网站建设公司名称百度新闻官网
  • 南昌高端网站开发费用表如何seo推广
  • 一台ip做两个网站百度网盟
  • 网站建设服务那一个便宜海外网站
  • 如何利用java工具做网站seo排名优化软件有
  • 校园网站建设系统设计互动营销的案例有哪些
  • 购买域名做销售网站可以吗军事网站大全军事网
  • 一个叫mit做app的网站怎么推广一个app
  • 名词解释响应式网页设计seo jsbapp9
  • 做网站怎么和广告公司合作厦门百度竞价
  • 一个旅游网站怎么做护肤品推广软文
  • 建网站做相亲交换友情链接的意义是什么