电脑知识|欧美黑人一区二区三区|软件|欧美黑人一级爽快片淫片高清|系统|欧美黑人狂野猛交老妇|数据库|服务器|编程开发|网络运营|知识问答|技术教程文章 - 好吧啦网

您的位置:首頁技術文章
文章詳情頁

Spring Boot定時任務單線程多線程實現代碼解析

瀏覽:8日期:2023-08-22 17:31:46

1、創建定時任務:

@Componentpublic class AutoNotifyController { /** * 獲取RedisUtils注入的bean * * @return */ private ThreadUtil getThreadUtil() { ThreadUtil threadUtil = SpringContextUtil.getBean('threadUtil'); return threadUtil; } /** * @描述: 推送啟動充電結果的自動獲取和處理分發方法 * @輸入值: void * @返回值: void */ @Scheduled(cron = '*/5 * * * * ?') public void AutoNotifyStartChargeResult() { getThreadUtil().AutoNotifyStartChargeResult(); } /** * @描述: 推送充電狀態的自動獲取和處理分發方法 * @輸入值: void * @返回值: void */ @Scheduled(cron = '*/50 * * * * ?') public void AutoNotifyChargeStatus() { getThreadUtil().AutoNotifyChargeStatus(); } /** * @描述: 推送停止充電結果的自動獲取和處理分發方法 * @輸入值: void * @返回值: void */ @Scheduled(cron = '*/5 * * * * ?') public void AutoNotifyStopChargeResult() { getThreadUtil().AutoNotifyStopChargeResult(); } /** * @描述: 推送訂單信息的自動獲取和處理分發方法 * @輸入值: void * @返回值: void */ @Scheduled(cron = '*/5 * * * * ?') public void AutoNotifyOrderInfo() { getThreadUtil().AutoNotifyOrderInfo(); } /** * @描述: 公共信息部分的設備狀態變化推送接口的自動獲取和處理分發方法 * @輸入值: void * @返回值: void */ @Scheduled(fixedRate = 200) public void checkGunStatus() { getThreadUtil().checkGunStatus(); } /** * @描述: 對于Redis中的活躍訂單增加和刪除的輪詢執行方法 */ @Scheduled(cron = '*/5 * * * * ?') public void ActiveOrderAddAndDelete() { getThreadUtil().ActiveOrderAddAndDelete(); } /** * @描述: 對于Redis中的結束訂單訂單增加和刪除的輪詢執行方法 */ @Scheduled(cron = '*/5 * * * * ?') public void EndOrderAddAndDelete() { getThreadUtil().EndOrderAddAndDelete(); }}

使用 @Scheduled來創建定時任務 這個注解用來標注一個定時任務方法。

通過看 @Scheduled源碼可以看出它支持多種參數:

(1)cron:cron表達式,指定任務在特定時間執行;

(2)fixedDelay:表示上一次任務執行完成后多久再次執行,參數類型為long,單位ms;

(3)fixedDelayString:與fixedDelay含義一樣,只是參數類型變為String;

(4)fixedRate:表示按一定的頻率執行任務,參數類型為long,單位ms;

(5)fixedRateString: 與fixedRate的含義一樣,只是將參數類型變為String;

(6)initialDelay:表示延遲多久再第一次執行任務,參數類型為long,單位ms;

(7)initialDelayString:與initialDelay的含義一樣,只是將參數類型變為String;

(8)zone:時區,默認為當前時區,一般沒有用到。

2、開啟定時任務:

@SpringBootApplication@EnableSchedulingpublic class PositivebuttjointApplication extends SpringBootServletInitializer{ public static void main(String[] args) { SpringApplication.run(PositivebuttjointApplication.class, args); }

注:這里的 @EnableScheduling 注解,它的作用是發現注解 @Scheduled的任務并由后臺執行。沒有它的話將無法執行定時任務。

引用官方文檔原文:

@EnableScheduling ensures that a background task executor is created. Without it, nothing gets scheduled.

3、執行結果(單線程)

就完成了一個簡單的定時任務模型,下面執行springBoot觀察執行結果:

Spring Boot定時任務單線程多線程實現代碼解析

從控制臺輸入的結果中我們可以看出所有的定時任務都是在同一個線程池用同一個線程來處理的,那么我們如何來并發的處理各定時任務呢,請繼續向下看。

4、多線程處理定時任務:

1.開啟多線程

@SpringBootApplication@EnableScheduling@EnableAsyncpublic class PositivebuttjointApplication extends SpringBootServletInitializer{ public static void main(String[] args) { SpringApplication.run(PositivebuttjointApplication.class, args); }

加入@EnableAsync開啟多線程

2.使用多線程

@Async public void AutoNotifyStartChargeResult() { }

 調用的方法上加上@Async使用多線程

3.配置連接池

@Configurationpublic class ScheduleConfiguration implements SchedulingConfigurer { @Override public void configureTasks(ScheduledTaskRegistrar taskRegistrar) { taskRegistrar.setScheduler(this.getTaskScheduler()); } private ThreadPoolTaskScheduler getTaskScheduler() { ThreadPoolTaskScheduler taskScheduler = new ThreadPoolTaskScheduler(); taskScheduler.setPoolSize(20); taskScheduler.setThreadNamePrefix('schedule-pool-'); taskScheduler.initialize(); return taskScheduler; }}

以上就是本文的全部內容,希望對大家的學習有所幫助,也希望大家多多支持好吧啦網。

標簽: Spring
相關文章:
主站蜘蛛池模板: 常州律师事务所_常州律所_常州律师-江苏乐天律师事务所 | 天津中都白癜风医院_天津白癜风医院_天津治疗白癜风 | 学生作文网_中小学生作文大全与写作指导 | 免费网站网址收录网_海企优网站推荐平台 | 短信通106短信接口验证码接口群发平台_国际短信接口验证码接口群发平台-速度网络有限公司 | 伟秀电气有限公司-10kv高低压开关柜-高低压配电柜-中置柜-充气柜-欧式箱变-高压真空断路器厂家 | 自清洗过滤器_全自动过滤器_全自动反冲洗过滤器_量子过滤器-滑漮滴 | 恒压供水控制柜|无负压|一体化泵站控制柜|PLC远程调试|MCGS触摸屏|自动控制方案-联致自控设备 | 喷码机,激光喷码打码机,鸡蛋打码机,手持打码机,自动喷码机,一物一码防伪溯源-恒欣瑞达有限公司 | 蓝米云-专注于高性价比香港/美国VPS云服务器及海外公益型免费虚拟主机 | 天津中都白癜风医院_天津白癜风医院_天津治疗白癜风 | 磁力链接搜索神器_BT磁力狗_CILIMAO磁力猫_高效磁力搜索引擎2024 | NM-02立式吸污机_ZHCS-02软轴刷_二合一吸刷软轴刷-厦门地坤科技有限公司 | 仓储货架_南京货架_钢制托盘_仓储笼_隔离网_环球零件盒_诺力液压车_货架-南京一品仓储设备制造公司 | 中医中药治疗血小板减少-石家庄血液病肿瘤门诊部 | 砍排机-锯骨机-冻肉切丁机-熟肉切片机-预制菜生产线一站式服务厂商 - 广州市祥九瑞盈机械设备有限公司 | 东莞猎头公司_深圳猎头公司_广州猎头公司-广东万诚猎头提供企业中高端人才招聘服务 | 政府园区专业委托招商平台_助力企业选址项目快速落地_东方龙商务集团 | 首页_中夏易经起名网 | 喷码机,激光喷码打码机,鸡蛋打码机,手持打码机,自动喷码机,一物一码防伪溯源-恒欣瑞达有限公司 | 润滑油加盟_润滑油厂家_润滑油品牌-深圳市沃丹润滑科技有限公司 琉璃瓦-琉璃瓦厂家-安徽盛阳新型建材科技有限公司 | 黑龙江「京科脑康」医院-哈尔滨失眠医院_哈尔滨治疗抑郁症医院_哈尔滨精神心理医院 | 河南mpp电力管_mpp电力管生产厂家_mpp电力电缆保护管价格 - 河南晨翀实业 | 灌木树苗-绿化苗木-常绿乔木-价格/批发/基地 - 四川成都途美园林 | 国际金融网_每日财经新资讯网| 磁棒电感生产厂家-电感器厂家-电感定制-贴片功率电感供应商-棒形电感生产厂家-苏州谷景电子有限公司 | 【甲方装饰】合肥工装公司-合肥装修设计公司,专业从事安徽办公室、店面、售楼部、餐饮店、厂房装修设计服务 | 天空彩票天下彩,天空彩天空彩票免费资料,天空彩票与你同行开奖,天下彩正版资料大全 | 磁力加热搅拌器-多工位|大功率|数显恒温磁力搅拌器-司乐仪器官网 | 海日牌清洗剂-打造带电清洗剂、工业清洗剂等清洗剂国内一线品牌 海外整合营销-独立站营销-社交媒体运营_广州甲壳虫跨境网络服务 | 球形钽粉_球形钨粉_纳米粉末_难熔金属粉末-广东银纳官网 | 真空冷冻干燥机_国产冻干机_冷冻干燥机_北京四环冻干 | 网优资讯-为循环资源、大宗商品、工业服务提供资讯与行情分析的数据服务平台 | 福州甲醛检测-福建室内空气检测_环境检测_水质检测-福建中凯检测技术有限公司 | 万濠影像仪(万濠投影仪)百科-苏州林泽仪器 | 动物麻醉机-数显脑立体定位仪-北京易则佳科技有限公司 | 镀锌钢格栅_热镀锌格栅板_钢格栅板_热镀锌钢格板-安平县昊泽丝网制品有限公司 | 福州仿石漆加盟_福建仿石漆厂家-外墙仿石漆加盟推荐铁壁金钢(福建)新材料科技有限公司有保障 | 苏州工作服定做-工作服定制-工作服厂家网站-尺品服饰科技(苏州)有限公司 | 玖容气动液压设备有限公司-气液增压缸_压力机_增压机_铆接机_增压器 | 斗式提升机_链式斗提机_带式斗提机厂家无锡市鸿诚输送机械有限公司 |