當前位置:
首頁 >
前端技术
> javascript
>内容正文
javascript
Spring Boot 动态修改定时任务cron参数
生活随笔
收集整理的這篇文章主要介紹了
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参数的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: C++ 四种类型转换运算符
- 下一篇: Spring Boot 页面国际化