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

莱州信息网宁波百度推广优化

莱州信息网,宁波百度推广优化,大学生网站建设小结,代账公司Spring的Scheduled的默认线程池数量为1,也就是说定时任务是单线程执行的。这意味着最多同时只有一个任务在执行。当一个任务还在执行时,其他任务会等待其完成,然后按照其预定的执行策略依次执行。 测试代码: 启动类上加注解Enab…

Spring的@Scheduled的默认线程池数量为1,也就是说定时任务是单线程执行的。这意味着最多同时只有一个任务在执行。当一个任务还在执行时,其他任务会等待其完成,然后按照其预定的执行策略依次执行。

测试代码:

启动类上加注解@EnableScheduling开启任务调度功能,具体任务调度代码如下:

@Slf4j
@Component
public class Scheduler {// 每两秒执行一次@Scheduled(fixedRate = 2000)public void mockMethod1() {long threadId = Thread.currentThread().getId();String threadName = Thread.currentThread().getName();log.info("mockMethod1 start with current thread id: {}, name: {}", threadId, threadName);try {Thread.sleep(10000);} catch (InterruptedException e) {e.printStackTrace();}log.info("mockMethod1 end with current thread id: {}, name: {}", threadId, threadName);}@Scheduled(fixedRate = 2000)public void mockMethod2() {long threadId = Thread.currentThread().getId();String threadName = Thread.currentThread().getName();log.info("mockMethod2 start with current thread id: {}, name: {}", threadId, threadName);try {Thread.sleep(10000);} catch (InterruptedException e) {e.printStackTrace();}log.info("mockMethod2 end with current thread id: {}, name: {}", threadId, threadName);}}

结果:可以看到mockMethod1执行完才会执行mockMethod2,而且是单线程执行
在这里插入图片描述

源码

在这里插入图片描述

Spring的@Scheduled有个特点就是,确保任务执行完毕后才会再次调度下一次执行

想要同时执行多个Scheduled,怎么办?

解决

1.当如果有程序有多个任务的话需要修改配置,让其变为多线程执行,这种配置不会破坏Scheduled的特点

# 设置任务调度线程名称前缀
spring.task.scheduling.thread-name-prefix=task-schedule-
# 设置任务调度线程池大小
spring.task.scheduling.pool.size=10
# 设置任务调度线程池关闭时等待所有任务完成
spring.task.scheduling.shutdown.await-termination=true

结果
在这里插入图片描述
2.使用@Async配置线程池,这种配置会破坏Scheduled的特点

启动类上加注解@EnableAsync开启异步功能,然后配置线程池

@Configuration
public class AppConfig {@Bean("taskExecutor")public ThreadPoolTaskExecutor taskExecutor() {ThreadPoolTaskExecutor executor = new ThreadPoolTaskExecutor();executor.setCorePoolSize(6); // 设置核心线程数executor.setMaxPoolSize(9); // 设置最大线程数executor.setQueueCapacity(25); // 设置任务队列容量executor.setThreadNamePrefix("executor-");return executor;}
}

代码上加上异步

@Async("taskExecutor")
@Scheduled(fixedRate = 2000)
public void mockMethod1() {long threadId = Thread.currentThread().getId();String threadName = Thread.currentThread().getName();log.info("mockMethod1 start with current thread id: {}, name: {}", threadId, threadName);try {Thread.sleep(10000);} catch (InterruptedException e) {e.printStackTrace();}log.info("mockMethod1 end with current thread id: {}, name: {}", threadId, threadName);
}

结果
在这里插入图片描述

http://www.jinmujx.cn/news/111773.html

相关文章:

  • 网站建设客户问题有哪些网页设计公司
  • 比分网站建设百度竞价点击软件
  • 设计公司网页模板东营seo整站优化
  • 万达做的电商网站小程序源码网
  • 免费下载网站设计方案网站推广的一般流程是
  • 青岛vps网站万网域名官网
  • 编程和做网站那个号品牌营销策略
  • 怎样做摄影网站怎样在百度上做广告
  • 微网站医院策划案网站访问量排行榜
  • 建设工程方面的资料在哪个网站下载比较方便推广普通话宣传周
  • 临清网站建设费用2023年7月疫情爆发
  • 自己做手机网站网站优化推广方案
  • 专业的句容网站建设成都网站设计公司
  • 网站常州建设青海seo关键词排名优化工具
  • 江苏建设行业证书编号查询网站营销型企业网站案例
  • 汶上做网站营销策划与运营方案
  • 哪个网站专业做安防温州seo按天扣费
  • 哪些网站做日本代购百度快速优化排名软件
  • 南宁建行 网站长沙网站推广和优化
  • 网站建设销售员百度指数在线查询工具
  • 网站制作教程网站北京网站优化指导
  • 自学编程做点网站赚钱东莞精准网络营销推广
  • 如何将数据写入wordpress文站企业网络推广方式
  • java门户网站开发框架我想接app注册推广单
  • 做外贸的国际网站有哪些自己创建个人免费网站
  • 杭州公司网站建设企业自助建站
  • 免费网站正能量软件杭州百度开户
  • 怎么在建设银行网站挂号英文seo推广
  • 有没有教做衣服的网站游戏交易平台
  • 百度做的网站和其他网站的区别南京百度快速排名优化