當(dāng)前位置:
首頁(yè) >
前端技术
> javascript
>内容正文
javascript
Spring Boot 动态修改定时任务cron参数
生活随笔
收集整理的這篇文章主要介紹了
Spring Boot 动态修改定时任务cron参数
小編覺(jué)得挺不錯(cuò)的,現(xiàn)在分享給大家,幫大家做個(gè)參考.
動(dòng)態(tài)修改定時(shí)任務(wù)cron參數(shù)
不需要重啟應(yīng)用就可以動(dòng)態(tài)的改變Cron表達(dá)式的值不能使用@Scheduled(cron = "${jobs.cron}")實(shí)現(xiàn)動(dòng)態(tài)定時(shí)任務(wù)類(lèi)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;/*** 動(dòng)態(tài)修改定時(shí)任務(wù)cron參數(shù)*/ @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);}// 定時(shí)任務(wù)的業(yè)務(wù)邏輯System.out.println("動(dòng)態(tài)修改定時(shí)任務(wù)cron參數(shù),當(dāng)前時(shí)間:" + dateFormat.format(new Date()));}}, new Trigger() {@Overridepublic Date nextExecutionTime(TriggerContext triggerContext) {// 定時(shí)任務(wù)觸發(fā),可修改定時(shí)任務(wù)的執(zhí)行周期CronTrigger trigger = new CronTrigger(cron);Date nextExecDate = trigger.nextExecutionTime(triggerContext);return nextExecDate;}});}public void setCron(String cron) {this.cron = cron;} }啟動(dòng)類(lèi)Application添加@EnableScheduling標(biāo)注
@EnableScheduling控制器UserController
@Autowired DynamicScheduledTask dynamicScheduledTask;// 更新動(dòng)態(tài)任務(wù)時(shí)間 @RequestMapping("/updateDynamicScheduledTask") @ResponseBody public AjaxResult updateDynamicScheduledTask() {dynamicScheduledTask.setCron("0/10 * * * * ?");return new AjaxResult().success(); }user.jsp頁(yè)面添加按鈕方法
updateDynamicScheduledTask : function() {//動(dòng)態(tài)修改定時(shí)任務(wù)$.get("/user/updateDynamicScheduledTask", function(data) {if (data.meta.success) {//動(dòng)態(tài)修改定時(shí)任務(wù)成功$.messager.alert('成功提示', "請(qǐng)重新刷新數(shù)據(jù),有插入新的數(shù)據(jù)", 'info');} else {$.messager.alert('錯(cuò)誤提示', data.meta.message, 'error');}}, 'json'); }<a href="javascript:void(0)" class="easyui-linkbutton c8" iconCls="icon-search" data-url="updateDynamicScheduledTask">動(dòng)態(tài)修改定時(shí)任務(wù)</a>如果感覺(jué)不錯(cuò)的話(huà)記得點(diǎn)贊喲!!!
總結(jié)
以上是生活随笔為你收集整理的Spring Boot 动态修改定时任务cron参数的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問(wèn)題。
- 上一篇: C++ 四种类型转换运算符
- 下一篇: Java不规则数组