springboot指定时间触发定时任务

简介: springboot指定时间触发定时任务

新建测试Demo类执行定时任务

package com.task.zhixingshijian;
import java.time.LocalDateTime;
import java.time.temporal.ChronoField;
import java.util.*;
/**
 * @author wuzhenyong
 * ClassName:TaskDemo.java
 * date:2022-09-28 09:44
 * Description:
 */
public class TaskDemo {
  /**
   * 指定时间执行一次定时任务
   *
   * @param localDateTime 触发时机
   * @param timing        参数信息
   */
  public void timing(LocalDateTime localDateTime, Map<String, String> timing) {
    Calendar calendar = Calendar.getInstance();
    // 年份
    calendar.set(Calendar.YEAR, localDateTime.get(ChronoField.YEAR));
    // 月份 传入日期需要-1
    calendar.set(Calendar.MONTH, localDateTime.get(ChronoField.MONTH_OF_YEAR)-1);
    // 天数
    calendar.set(Calendar.DAY_OF_MONTH, localDateTime.get(ChronoField.DAY_OF_MONTH));
    // 小时
    calendar.set(Calendar.HOUR_OF_DAY, localDateTime.get(ChronoField.HOUR_OF_DAY));
    // 分钟
    calendar.set(Calendar.MINUTE, localDateTime.get(ChronoField.MINUTE_OF_HOUR));
    // 秒
    calendar.set(Calendar.SECOND, localDateTime.get(ChronoField.SECOND_OF_MINUTE));
    Date time = calendar.getTime();
    Timer timer = new Timer();
    // 执行
    timer.schedule(new TimerTask() {
      @Override
      public void run() {
        System.out.println("执行了指定执行时间任务,localDateTime:" + LocalDateTime.now());
        System.out.println("执行内容:" + timing.toString());
      }
    }, time);
  }
}

创建项目启动后进行配置具体时间执行定时类

注意:此类只是测试一下,如果项目中是不需要此类的

package com.task.zhixingshijian;
import org.springframework.stereotype.Component;
import java.time.LocalDateTime;
import java.util.HashMap;
import java.util.Map;
/**
 * @author wuzhenyong
 * ClassName:TaskCommandLineRunner.java
 * date:2022-09-28 09:43
 * Description:
 */
@Component
public class TaskCommandLineRunner implements org.springframework.boot.CommandLineRunner {
  /**
   * 启动项目后运行
   *
   * @param args arg游
   */
  @Override
  public void run(String... args) {
    // 指定触发的时间1
    LocalDateTime localDateTime1 = LocalDateTime.of(2022, 9, 28, 10, 14, 00);
    Map<String, String> timing1 = new HashMap<>();
    timing1.put("name", "timing1");
    new TaskDemo().timing(localDateTime1, timing1);
    // 指定触发的时间2
    LocalDateTime localDateTime2 = LocalDateTime.of(2022, 9, 28, 10, 13, 00);
    Map<String, String> timing2 = new HashMap<>();
    timing2.put("name", "timing2");
    new TaskDemo().timing(localDateTime2, timing2);
    // 指定触发的时间3
    LocalDateTime localDateTime3 = LocalDateTime.of(2022, 9, 28, 10, 15, 00);
    Map<String, String> timing3 = new HashMap<>();
    timing3.put("name", "timing3");
    new TaskDemo().timing(localDateTime3, timing3);
  }
}

运行效果

716bd92915fe4b83b7ea0d8a97fe1eec.png

相关文章
|
5月前
|
安全 前端开发 Java
Spring Boot 项目中触发 Circular View Path 错误的原理与解决方案
在Spring Boot开发中,**Circular View Path**错误常因视图解析与Controller路径重名引发。当视图名称(如`login`)与请求路径相同,Spring MVC无法区分,导致无限循环调用。解决方法包括:1) 明确指定视图路径,避免重名;2) 将视图文件移至子目录;3) 确保Spring Security配置与Controller路径一致。通过合理设定视图和路径,可有效避免该问题,确保系统稳定运行。
343 0
|
4月前
|
JavaScript 前端开发 Java
制造业ERP源码,工厂ERP管理系统,前端框架:Vue,后端框架:SpringBoot
这是一套基于SpringBoot+Vue技术栈开发的ERP企业管理系统,采用Java语言与vscode工具。系统涵盖采购/销售、出入库、生产、品质管理等功能,整合客户与供应商数据,支持在线协同和业务全流程管控。同时提供主数据管理、权限控制、工作流审批、报表自定义及打印、在线报表开发和自定义表单功能,助力企业实现高效自动化管理,并通过UniAPP实现移动端支持,满足多场景应用需求。
422 1
|
5月前
|
前端开发 Java 关系型数据库
基于Java+Springboot+Vue开发的鲜花商城管理系统源码+运行
基于Java+Springboot+Vue开发的鲜花商城管理系统(前后端分离),这是一项为大学生课程设计作业而开发的项目。该系统旨在帮助大学生学习并掌握Java编程技能,同时锻炼他们的项目设计与开发能力。通过学习基于Java的鲜花商城管理系统项目,大学生可以在实践中学习和提升自己的能力,为以后的职业发展打下坚实基础。技术学习共同进步
411 7
|
4月前
|
供应链 JavaScript BI
ERP系统源码,基于SpringBoot+Vue+ElementUI+UniAPP开发
这是一款专为小微企业打造的 SaaS ERP 管理系统,基于 SpringBoot+Vue+ElementUI+UniAPP 技术栈开发,帮助企业轻松上云。系统覆盖进销存、采购、销售、生产、财务、品质、OA 办公及 CRM 等核心功能,业务流程清晰且操作简便。支持二次开发与商用,提供自定义界面、审批流配置及灵活报表设计,助力企业高效管理与数字化转型。
428 2
ERP系统源码,基于SpringBoot+Vue+ElementUI+UniAPP开发
|
11月前
|
JavaScript 安全 Java
如何使用 Spring Boot 和 Ant Design Pro Vue 实现动态路由和菜单功能,快速搭建前后端分离的应用框架
本文介绍了如何使用 Spring Boot 和 Ant Design Pro Vue 实现动态路由和菜单功能,快速搭建前后端分离的应用框架。首先,确保开发环境已安装必要的工具,然后创建并配置 Spring Boot 项目,包括添加依赖和配置 Spring Security。接着,创建后端 API 和前端项目,配置动态路由和菜单。最后,运行项目并分享实践心得,包括版本兼容性、安全性、性能调优等方面。
595 1
|
8月前
|
JavaScript Java 测试技术
基于SpringBoot+Vue实现的留守儿童爱心网站设计与实现(计算机毕设项目实战+源码+文档)
博主是一位全网粉丝超过100万的CSDN特邀作者、博客专家,专注于Java、Python、PHP等技术领域。提供SpringBoot、Vue、HTML、Uniapp、PHP、Python、NodeJS、爬虫、数据可视化等技术服务,涵盖免费选题、功能设计、开题报告、论文辅导、答辩PPT等。系统采用SpringBoot后端框架和Vue前端框架,确保高效开发与良好用户体验。所有代码由博主亲自开发,并提供全程录音录屏讲解服务,保障学习效果。欢迎点赞、收藏、关注、评论,获取更多精品案例源码。
|
8月前
|
JavaScript Java 测试技术
基于SpringBoot+Vue实现的家政服务管理平台设计与实现(计算机毕设项目实战+源码+文档)
面向大学生毕业选题、开题、任务书、程序设计开发、论文辅导提供一站式服务。主要服务:程序设计开发、代码修改、成品部署、支持定制、论文辅导,助力毕设!
|
8月前
|
JavaScript 搜索推荐 Java
基于SpringBoot+Vue实现的家乡特色推荐系统设计与实现(源码+文档+部署)
面向大学生毕业选题、开题、任务书、程序设计开发、论文辅导提供一站式服务。主要服务:程序设计开发、代码修改、成品部署、支持定制、论文辅导,助力毕设!
|
8月前
|
JavaScript NoSQL Java
基于SpringBoot+Vue实现的大学生就业服务平台设计与实现(系统源码+文档+数据库+部署等)
面向大学生毕业选题、开题、任务书、程序设计开发、论文辅导提供一站式服务。主要服务:程序设计开发、代码修改、成品部署、支持定制、论文辅导,助力毕设!
|
8月前
|
JavaScript Java 测试技术
基于Java+SpringBoot+Vue实现的车辆充电桩系统设计与实现(系统源码+文档+部署讲解等)
面向大学生毕业选题、开题、任务书、程序设计开发、论文辅导提供一站式服务。主要服务:程序设计开发、代码修改、成品部署、支持定制、论文辅导,助力毕设!