一、引入依赖
<dependency>
<groupId>cn.hutool</groupId>
<artifactId>hutool-all</artifactId>
<version>5.8.22</version>
</dependency>
二、编写动态任务管理器
package com.tuling.dynamic.datasource.controller;
import com.tuling.dynamic.datasource.cron_task.DynamicCronTaskManager;
import lombok.extern.slf4j.Slf4j;
import org.springframework.web.bind.annotation.GetMapping;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RestController;
/***
* @Author 徐庶 QQ:1092002729
* @Slogan 致敬大师,致敬未来的你
*/
@RestController
@RequestMapping("task")
@Slf4j
public class TaskController {
/**
* 添加任务
*
* @return
*/
@GetMapping(value = "addTask1")
public String addTask1() {
//注意 logiclid任务业务id 和 cron 都是自定义的 可以写入数据库中
return DynamicCronTaskManager.addTask("*/3 * * * * *", "task1", () -> {
log.error("任务1正在执行...");
});
}
/**
* 添加任务
*
* @return
*/
@GetMapping(value = "addTask2")
public String addTask2() {
//注意 logiclid任务业务id 和 cron 都是自定义的 可以写入数据库中
return DynamicCronTaskManager.addTask("*/5 * * * * *", "task2", () -> {
log.error("任务2正在执行...");
});
}
@GetMapping("addDelayedTask")
public void addDelayedTask() {
DynamicCronTaskManager.addDelayedTask(
5, // 延迟5秒
"*/5 * * * * *", // 每隔3秒执行一次
"delayedTask",
() -> {
log.error("【定时任务】延迟任务正在执行...");
}
);
}
/**
* 删除任务
*
* @param logicalId 任务的业务id
*/
@GetMapping(value = "delTask")
public void delTask(String logicalId) {
DynamicCronTaskManager.removeTask(logicalId);
}
}
import com.tuling.dynamic.datasource.cron_task.DynamicCronTaskManager;
import lombok.extern.slf4j.Slf4j;
import org.springframework.web.bind.annotation.GetMapping;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RestController;
/***
* @Author 徐庶 QQ:1092002729
* @Slogan 致敬大师,致敬未来的你
*/
@RestController
@RequestMapping("task")
@Slf4j
public class TaskController {
/**
* 添加任务
*
* @return
*/
@GetMapping(value = "addTask1")
public String addTask1() {
//注意 logiclid任务业务id 和 cron 都是自定义的 可以写入数据库中
return DynamicCronTaskManager.addTask("*/3 * * * * *", "task1", () -> {
log.error("任务1正在执行...");
});
}
/**
* 添加任务
*
* @return
*/
@GetMapping(value = "addTask2")
public String addTask2() {
//注意 logiclid任务业务id 和 cron 都是自定义的 可以写入数据库中
return DynamicCronTaskManager.addTask("*/5 * * * * *", "task2", () -> {
log.error("任务2正在执行...");
});
}
@GetMapping("addDelayedTask")
public void addDelayedTask() {
DynamicCronTaskManager.addDelayedTask(
5, // 延迟5秒
"*/5 * * * * *", // 每隔3秒执行一次
"delayedTask",
() -> {
log.error("【定时任务】延迟任务正在执行...");
}
);
}
/**
* 删除任务
*
* @param logicalId 任务的业务id
*/
@GetMapping(value = "delTask")
public void delTask(String logicalId) {
DynamicCronTaskManager.removeTask(logicalId);
}
}
三、编写测试类
package com.tuling.dynamic.datasource.controller;
import com.tuling.dynamic.datasource.cron_task.DynamicCronTaskManager;
import lombok.extern.slf4j.Slf4j;
import org.springframework.web.bind.annotation.GetMapping;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RestController;
@RestController
@RequestMapping("task")
@Slf4j
public class TaskController {
/**
* 添加任务
* @return
*/
@GetMapping(value = "addTask1")
public String addTask1() {
//注意 logiclid任务业务id 和 cron 都是自定义的 可以写入数据库中
return DynamicCronTaskManager.addTask("*/3 * * * * *", "task1", () -> {
log.error("任务1正在执行...");
});
}
/**
* 添加任务
* @return
*/
@GetMapping(value = "addTask2")
public String addTask2() {
//注意 logiclid任务业务id 和 cron 都是自定义的 可以写入数据库中
return DynamicCronTaskManager.addTask("*/5 * * * * *", "task2", () -> {
log.error("任务2正在执行...");
});
}
import com.tuling.dynamic.datasource.cron_task.DynamicCronTaskManager;
import lombok.extern.slf4j.Slf4j;
import org.springframework.web.bind.annotation.GetMapping;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RestController;
@RestController
@RequestMapping("task")
@Slf4j
public class TaskController {
/**
* 添加任务
* @return
*/
@GetMapping(value = "addTask1")
public String addTask1() {
//注意 logiclid任务业务id 和 cron 都是自定义的 可以写入数据库中
return DynamicCronTaskManager.addTask("*/3 * * * * *", "task1", () -> {
log.error("任务1正在执行...");
});
}
/**
* 添加任务
* @return
*/
@GetMapping(value = "addTask2")
public String addTask2() {
//注意 logiclid任务业务id 和 cron 都是自定义的 可以写入数据库中
return DynamicCronTaskManager.addTask("*/5 * * * * *", "task2", () -> {
log.error("任务2正在执行...");
});
}
/**
* 添加延迟任务
*/
@GetMapping("addDelayedTask")
public void addDelayedTask() {
DynamicCronTaskManager.addDelayedTask(
5, // 延迟5秒
"*/5 * * * * *", // 每隔3秒执行一次
"delayedTask",
() -> {
log.error("【定时任务】延迟任务正在执行...");
}
);
}
* 添加延迟任务
*/
@GetMapping("addDelayedTask")
public void addDelayedTask() {
DynamicCronTaskManager.addDelayedTask(
5, // 延迟5秒
"*/5 * * * * *", // 每隔3秒执行一次
"delayedTask",
() -> {
log.error("【定时任务】延迟任务正在执行...");
}
);
}
/**
* 删除任务
* @param logicalId 任务的业务id
*/
@GetMapping(value = "delTask")
public void delTask(String logicalId) {
DynamicCronTaskManager.removeTask(logicalId);
}
}
浙公网安备 33010602011771号