当前位置: 首页 > news >正文

黑豹程序员-Spring Task实现定时任务

定时任务

项目中,我们有一个特殊的要求,无需人为去触发,而是自动去触发程序。通常有一定的频率,每天,某时等。

实现的四种方式

1、java自身提供定时任务java.util.Timer类,但太过简单,几乎无人使用;
2、ScheduledExecutorService:也jdk自带的一个类;是基于线程池设计的定时任务类;并发性能佳;
3、Quartz:这是一个功能比较强大的的调度器,可以让你的程序在指定时间执行,也可以按照某一个频度执行,配置起来稍显复杂;
4、Spring Task:Spring3.0以后自带的task,可以将它看成一个轻量级的Quartz,而且使用起来比Quartz简单许多;
5、Elastic-Job的特点在于其弹性化的调度和任务分片机制,可以有效地解决任务并发和分布式的问题。它还提供了丰富的任务类型和插件式扩展,例如Shell、HTTP、Dubbo等,方便开发者们快速构建定时任务。另外,Elastic-Job还具有任务的动态配置和监控功能,可以对任务进行实时的管理和调优。

这里可以看出Elastic-Job最为强大,但也太过繁琐。
本人推荐采用Spring Task,其功能足够用,又和Spring对接,可以直接使用Spring的资源,操作起来最为方便。

Spring Task 代码实现

@EnableScheduling
@Component
@Slf4j
public class ScheduleTask {@Autowiredprivate SuperviseTaskService superviseTaskService;@Autowiredprivate NoticeService noticeService;@Scheduled(cron = "*/5 * * * * ?")  //cron表达式,定义定时任务每隔5秒;*/5 * * * * ?;每天凌晨3点执行一次:0 0 3 * * ?private void configureTasks() {log.debug("执行定时任务: " + new Date());}}
http://www.lryc.cn/news/333893.html

相关文章:

  • 云原生安全当前的挑战与解决办法
  • Qt——Qt实现数据可视化之QChart的使用总结(使用QChart画出动态显示的实时曲线)
  • (React生命周期)前端八股文修炼Day8
  • 考研||考公||就业||其他?-------愿不再犹豫
  • 使用 Selenium 和 OpenCV 识别验证码(使用 Java)
  • 什么是数据库?如何安装SQL Server(超详细版)
  • Golang 开发实战day08 - Multiple Return values
  • 如何成为一名优秀的工程师下
  • Docker【1】:Docker制作Oracle19C镜像
  • Layui三级联动插件使用方法
  • 使用iPhone/安卓手机代替门禁卡
  • UE4_动画基础_角色的缩放
  • 【云开发笔记No.20】中台架构的分类
  • 【leetcode面试经典150题】18.整数转罗马数字(C++)
  • NLopt
  • 三防笔记本丨工业笔记本电脑丨助力测绘行业的数字化转型
  • 创建spring boot项目
  • Mongodb字段更新操作符$currentDate
  • 通信安全之数据加密
  • 花一分钟简单认识 CSS 中的规则 —— 级联层 @layer
  • K8s学习三(Pod与探针)
  • leetcode - 678. Valid Parenthesis String
  • 索尼相机照片清理软件
  • 比赛记录:Codeforces Global Round 25 A~E (猜猜题场)
  • Windows系统安装OpenSSH结合VS Code远程ssh连接Ubuntu【内网穿透】
  • Svg Flow Editor 原生svg流程图编辑器(五)
  • 数字晶体管选型参数,结构原理,工艺与注意问题总结
  • lua学习笔记9(字典的学习)
  • 第六篇: 3.5 性能效果 (Performance)- IAB/MRC及《增强现实广告效果测量指南1.0》
  • mysql学习笔记NO.2