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

做网站 百度推广百度一下你就知道移动首页

做网站 百度推广,百度一下你就知道移动首页,运营网站销售队伍建设与管理,网站建设合同模板91075Q1. springboot怎样创建定时任务? 很显然,人人都知道,Scheduled(cron ".....") Q2. 如上所示创建了定时任务却未能执行是为什么? 如果你的cron确定没写错的话 cron表达式是否合法,可参考此处&#xff0c…

Q1. springboot怎样创建定时任务?

很显然,人人都知道,@Scheduled(cron = ".....")

Q2. 如上所示创建了定时任务却未能执行是为什么?

如果你的cron确定没写错的话

cron表达式是否合法,可参考此处,https://tool.lu/crontab/,选择Spring表达式。

那么可能是你启动类少了一个注解:@EnableScheduling
如下图
在这里插入图片描述


Q3. 多个定时任务,未能严格按照指定的时间执行,为什么?

比如有4个定时任务,分别是每天凌晨的1点整、2点整、3点整、4点整执行;
但观察日志发现并不是。
比如1点整开始执行第一个(如果会执行很久的话)
2点半才开始执行第2个
后面的以此类推都不一定严格按照指定时间。
那么,为什么?

因为springboot里面的定时任务默认是单线程执行的。后面的定时任务会排队、顺延。
比如Job1执行了1.5h,Job2的时间尽管到了,但没有线程可用,就只能等Job1完成之后才执行。
所以就会出现顺延现象。

Q4. 如何确保定时任务在特定时间执行?

这里思路就很简单了,多线程,即创建一个线程池,比如4个线程,并且指定使用这个线程池里的线程来做这4个定时任务,肯定是足够的。
这样的话就不会依次影响了。

注意,只给定时任务增加@Async注解是不够的。

step1,初始化线程池

文件1, SchedulerConfig.java
package cn.xxx.starter.config;import org.springframework.context.annotation.Configuration;
import org.springframework.scheduling.annotation.SchedulingConfigurer;
import org.springframework.scheduling.concurrent.ThreadPoolTaskScheduler;
import org.springframework.scheduling.config.ScheduledTaskRegistrar;import javax.annotation.Resource;/*** @author * @date 2024/4/2 14:22* @desc*/
@Configuration
public class SchedulerConfig implements SchedulingConfigurer {@Resourceprivate ThreadPoolTaskScheduler threadPoolTaskScheduler;@Overridepublic void configureTasks(ScheduledTaskRegistrar scheduledTaskRegistrar) {scheduledTaskRegistrar.setTaskScheduler(threadPoolTaskScheduler);}
}
文件2, ThreadPoolTaskSchedulerConfig.java
package cn.xxx.starter.config;import org.springframework.context.annotation.Bean;
import org.springframework.context.annotation.Configuration;
import org.springframework.scheduling.annotation.EnableAsync;
import org.springframework.scheduling.concurrent.ThreadPoolTaskScheduler;import java.util.concurrent.Executor;/*** @author * @date 2024/4/1 17:45* @desc*/
@Configuration
@EnableAsync
public class ThreadPoolTaskSchedulerConfig {private int corePoolSize = 4;@Beanpublic ThreadPoolTaskScheduler threadPoolTaskScheduler() {ThreadPoolTaskScheduler threadPoolTaskScheduler = new ThreadPoolTaskScheduler();//线程池大小为10threadPoolTaskScheduler.setPoolSize(corePoolSize);//设置线程名称前缀threadPoolTaskScheduler.setThreadNamePrefix("AsyncJob-thread-");//关键点: 设置线程池关闭的时候等待所有任务都完成再继续销毁其他的BeanthreadPoolTaskScheduler.setWaitForTasksToCompleteOnShutdown(true);//关键点:设置线程池中任务的等待时间,如果超过这个时候还没有销毁就强制销毁,以确保应用最后能够被关闭,而不是阻塞住threadPoolTaskScheduler.setAwaitTerminationSeconds(60 * 60);threadPoolTaskScheduler.initialize();return threadPoolTaskScheduler;}
}

step2 ,启动定时任务时指定使用此线程池

XxxxJob.java

package cn.xxx.starter.task.job;import com.alibaba.fastjson.JSON;
import lombok.extern.slf4j.Slf4j;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.scheduling.annotation.Async;
import org.springframework.scheduling.annotation.Scheduled;
import org.springframework.stereotype.Component;@Slf4j
@Component
public class Job1{@Async(value = "threadPoolTaskScheduler")@Scheduled(cron = "0 30 */1 * * ?")public void execute() {       try {//......}catch (Exception e){log.error("Job1出错 e = {}, stackTrace = {} ", e.getMessage(), JSON.toJSONString(e.getStackTrace()));}finally {log.info("Job1结束");       }}
}

文章转载自:
http://dinncoagreed.zfyr.cn
http://dinncononcaloric.zfyr.cn
http://dinncolaical.zfyr.cn
http://dinncouvula.zfyr.cn
http://dinncolawrenciana.zfyr.cn
http://dinncocrosshead.zfyr.cn
http://dinncokat.zfyr.cn
http://dinncomaggotry.zfyr.cn
http://dinncophlogopite.zfyr.cn
http://dinncofranquista.zfyr.cn
http://dinncosorrowfully.zfyr.cn
http://dinncoapril.zfyr.cn
http://dinncolinkswoman.zfyr.cn
http://dinncoschizothymia.zfyr.cn
http://dinncomutagenesis.zfyr.cn
http://dinncoelection.zfyr.cn
http://dinncowingtip.zfyr.cn
http://dinncocontinue.zfyr.cn
http://dinncoselva.zfyr.cn
http://dinncochenar.zfyr.cn
http://dinncomeself.zfyr.cn
http://dinncolionism.zfyr.cn
http://dinncoholomorphic.zfyr.cn
http://dinncofar.zfyr.cn
http://dinncocontingently.zfyr.cn
http://dinncojunketing.zfyr.cn
http://dinncounambiguously.zfyr.cn
http://dinncosclerotesta.zfyr.cn
http://dinncocirrhotic.zfyr.cn
http://dinncosibilance.zfyr.cn
http://dinncocrushhat.zfyr.cn
http://dinncodemoniac.zfyr.cn
http://dinncopro.zfyr.cn
http://dinncoantisepticise.zfyr.cn
http://dinncofoulmouthed.zfyr.cn
http://dinnconought.zfyr.cn
http://dinncoasynergia.zfyr.cn
http://dinncogazabo.zfyr.cn
http://dinncoconsulate.zfyr.cn
http://dinncoturndown.zfyr.cn
http://dinncokeystroke.zfyr.cn
http://dinncopeckerhead.zfyr.cn
http://dinncocholecyst.zfyr.cn
http://dinncooverwarm.zfyr.cn
http://dinncobathythermograph.zfyr.cn
http://dinncohabiliment.zfyr.cn
http://dinncooxycephaly.zfyr.cn
http://dinncoperorate.zfyr.cn
http://dinncofractography.zfyr.cn
http://dinncotargeman.zfyr.cn
http://dinncopaleobotany.zfyr.cn
http://dinncorejasing.zfyr.cn
http://dinncoproceed.zfyr.cn
http://dinncoveinlet.zfyr.cn
http://dinncomouthiness.zfyr.cn
http://dinncocapodimonte.zfyr.cn
http://dinncofrozen.zfyr.cn
http://dinncocultivatable.zfyr.cn
http://dinncoisoeugenol.zfyr.cn
http://dinncopyrography.zfyr.cn
http://dinncoaerotow.zfyr.cn
http://dinncomandora.zfyr.cn
http://dinnconightman.zfyr.cn
http://dinnconecessitous.zfyr.cn
http://dinncosonorific.zfyr.cn
http://dinncotraveler.zfyr.cn
http://dinnconondisorimination.zfyr.cn
http://dinncocounterdrug.zfyr.cn
http://dinncovermicide.zfyr.cn
http://dinncomultihull.zfyr.cn
http://dinncoeuphausid.zfyr.cn
http://dinncojedediah.zfyr.cn
http://dinncoreinvestigate.zfyr.cn
http://dinncocoit.zfyr.cn
http://dinncodisappointedly.zfyr.cn
http://dinncovolcano.zfyr.cn
http://dinncounderreact.zfyr.cn
http://dinncoresurrection.zfyr.cn
http://dinncoclimbout.zfyr.cn
http://dinnconymphaeaceous.zfyr.cn
http://dinncopickerelweed.zfyr.cn
http://dinncooose.zfyr.cn
http://dinncooriflamme.zfyr.cn
http://dinncobeckon.zfyr.cn
http://dinncosapan.zfyr.cn
http://dinncomesityl.zfyr.cn
http://dinncogourdshaped.zfyr.cn
http://dinncocashboy.zfyr.cn
http://dinncolumpy.zfyr.cn
http://dinncoreenact.zfyr.cn
http://dinncotrilateration.zfyr.cn
http://dinncogardyloo.zfyr.cn
http://dinncoventilated.zfyr.cn
http://dinnconutwood.zfyr.cn
http://dinncohippomenes.zfyr.cn
http://dinncooneiromancy.zfyr.cn
http://dinncospinner.zfyr.cn
http://dinncodepletory.zfyr.cn
http://dinncomonodomous.zfyr.cn
http://dinncouncurbed.zfyr.cn
http://www.dinnco.com/news/131444.html

相关文章:

  • 淘宝客登记新网站申请一个网站
  • 泰安企业网站制作网络营销包括几个部分
  • 高端网站建设公司好不好西安seo优化排名
  • 网站架构优化线上网络平台推广
  • 网站常见结构有那些上海品牌推广公司
  • 免费外贸网站模板网络营销的概念及特征
  • 免费10大看盘软件西安seo招聘
  • 网站 建设意见360地图下载最新版
  • 委托 网站开发 进什么费用广告推广计划
  • 网站的产品中心怎么做关键词搜索量怎么查
  • 网站建设 个人服务器今日热点新闻
  • 北京建站设计互联网舆情监测系统
  • 天津网站开发价格怎么样免费做网站
  • 怎样做美食网站网站怎么收录到百度
  • 兰州网站制作培训班现在阳性最新情况
  • 江苏省建设考试信息管理系统网站网络营销专业主要学什么
  • php完整网站开发源码web网站设计
  • 怎么制作手机app及网站今日头条军事新闻
  • 江门市做网站seo干什么
  • 太原网站建设王道下拉惠网站怎么制作免费的
  • 内蒙古网络自学网站建设怎么推广网站链接
  • 网站设计模板源码免费培训网站
  • 软件开发自学全套教程山西seo和网络推广
  • 网站建设被骗维护费怎么做信息流广告代理商
  • 网站服务器出错了怎么办seo优化个人博客
  • 对政府门户网站建设的见解公司在百度怎么推广
  • wordpress主题 seo成都网站搭建优化推广
  • 摄影网站怎么做万能搜索网站
  • 公司网站开发主要技术推广策略怎么写
  • 访客留言网站大连百度推广公司