企业🤖AI智能体构建引擎,智能编排和调试,一键部署,支持私有化部署方案 广告
``` /** * @author 张跃帅 * @Description: 定时器任务-工具 * @date 2020/08/12 */ @Slf4j public class TimerTaskUtil { /** * 启动 */ public static Boolean start(String taskKey, String cron, String className) { // 判断 if (ObjectUtil.hasEmpty(taskKey, cron, className)) { // 输出日志 log.error("\n" + "\n" + "定时器的参数为空,请检查参数<任务标识、cron表达式、class执行类>!" + "\n" ); // 返回 return false; } /** * 预加载类看是否存在此定时任务类 */ try { // 预加载类看是否存在此定时任务类 Class.forName(className); } catch (ClassNotFoundException e) { // 输出日志 log.error("\n" + "\n" + "定时器未获取到:<" + className + ">预加载类,请检查!" + "\n" ); // 返回 return false; } /** * 删除任务 */ if (null != CronUtil.getScheduler().getTask(taskKey)) { // 删除任务 CronUtil.remove(taskKey); } /** * 定义定时任务 */ Task task = () -> { try { // 通过class获取Bean TimerTaskApi timerTaskApi = (TimerTaskApi) SpringUtil.getBean(Class.forName(className)); // 任务执行 timerTaskApi.action(); } catch (ClassNotFoundException e) { // 输出日志 log.error("\n" + "\n" + "定时器的参数为空,请检查参数<任务标识、cron表达式、class执行类>!" + "\n" ); } }; /** * 开启定时任务 */ CronUtil.schedule(taskKey, cron, task); // 返回 return true; } /** * 更新 */ public static Boolean update(String taskKey, String cron, String className) { // 判断 if (ObjectUtil.hasEmpty(taskKey, cron, className)) { // 输出日志 log.error("\n" + "\n" + "定时器的参数为空,请检查参数<任务标识、cron表达式、class执行类>!" + "\n" ); // 返回 return false; } // 启动定时任务 return TimerTaskUtil.start(taskKey, cron, className); } /** * 停止 */ public static Boolean stop(String taskKey) { // 判断 if (StrUtil.isNotBlank(taskKey)) { // 移除任务 CronUtil.remove(taskKey); // 返回 return true; } // 返回 return false; } /** * 移除 */ public static Boolean remove(String taskKey) { // 判断 if (StrUtil.isNotBlank(taskKey)) { // 移除任务 CronUtil.remove(taskKey); // 返回 return true; } // 返回 return false; } }