日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 前端技术 > javascript >内容正文

javascript

Spring Boot 动态修改定时任务cron参数

發布時間:2025/3/12 javascript 18 豆豆
生活随笔 收集整理的這篇文章主要介紹了 Spring Boot 动态修改定时任务cron参数 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

動態修改定時任務cron參數

不需要重啟應用就可以動態的改變Cron表達式的值不能使用@Scheduled(cron = "${jobs.cron}")實現

動態定時任務類DynamicScheduledTask

package com.jege.spring.boot.task;import java.text.SimpleDateFormat; import java.util.Date;import org.springframework.beans.factory.annotation.Autowired; import org.springframework.scheduling.Trigger; import org.springframework.scheduling.TriggerContext; import org.springframework.scheduling.annotation.SchedulingConfigurer; import org.springframework.scheduling.config.ScheduledTaskRegistrar; import org.springframework.scheduling.support.CronTrigger; import org.springframework.stereotype.Component;import com.jege.spring.boot.data.jpa.entity.User; import com.jege.spring.boot.data.jpa.repository.UserRepository;/*** 動態修改定時任務cron參數*/ @Component public class DynamicScheduledTask implements SchedulingConfigurer {private static final SimpleDateFormat dateFormat = new SimpleDateFormat("HH:mm:ss");private static final String DEFAULT_CRON = "0/5 * * * * ?";private String cron = DEFAULT_CRON;@Autowiredprivate UserRepository userRepository;@Overridepublic void configureTasks(ScheduledTaskRegistrar taskRegistrar) {taskRegistrar.addTriggerTask(new Runnable() {@Overridepublic void run() {if (!cron.equals(DEFAULT_CRON)) {User user = new User("je_ge", 20);userRepository.save(user);}// 定時任務的業務邏輯System.out.println("動態修改定時任務cron參數,當前時間:" + dateFormat.format(new Date()));}}, new Trigger() {@Overridepublic Date nextExecutionTime(TriggerContext triggerContext) {// 定時任務觸發,可修改定時任務的執行周期CronTrigger trigger = new CronTrigger(cron);Date nextExecDate = trigger.nextExecutionTime(triggerContext);return nextExecDate;}});}public void setCron(String cron) {this.cron = cron;} }

啟動類Application添加@EnableScheduling標注

@EnableScheduling

控制器UserController

@Autowired DynamicScheduledTask dynamicScheduledTask;// 更新動態任務時間 @RequestMapping("/updateDynamicScheduledTask") @ResponseBody public AjaxResult updateDynamicScheduledTask() {dynamicScheduledTask.setCron("0/10 * * * * ?");return new AjaxResult().success(); }

user.jsp頁面添加按鈕方法

updateDynamicScheduledTask : function() {//動態修改定時任務$.get("/user/updateDynamicScheduledTask", function(data) {if (data.meta.success) {//動態修改定時任務成功$.messager.alert('成功提示', "請重新刷新數據,有插入新的數據", 'info');} else {$.messager.alert('錯誤提示', data.meta.message, 'error');}}, 'json'); }<a href="javascript:void(0)" class="easyui-linkbutton c8" iconCls="icon-search" data-url="updateDynamicScheduledTask">動態修改定時任務</a>

如果感覺不錯的話記得點贊喲!!!

總結

以上是生活随笔為你收集整理的Spring Boot 动态修改定时任务cron参数的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。