Java 设置定时任务的三种方式

使用 java.util.Timerjava.util.TimerTask

  • Timer 是一个定时器工具,能够在后台线程中调度任务。
  • TimerTask 是一个实现了 Runnable 接口的抽象类,需要继承它并重写 run 方法。

示例代码: 

import java.util.Timer;
import java.util.TimerTask;public class TimerExample {public static void main(String[] args) {Timer timer = new Timer();TimerTask task = new TimerTask() {@Overridepublic void run() {System.out.println("Task executed!");}};// Schedule the task to run every 2 seconds with an initial delay of 1 secondtimer.schedule(task, 1000, 2000);}
}

使用 ScheduledExecutorService

  • ScheduledExecutorServicejava.util.concurrent 包中的接口,提供了一种更强大的机制来调度任务。

示例代码:

import java.util.concurrent.Executors;
import java.util.concurrent.ScheduledExecutorService;
import java.util.concurrent.TimeUnit;public class ScheduledExecutorServiceExample {public static void main(String[] args) {ScheduledExecutorService scheduler = Executors.newScheduledThreadPool(1);Runnable task = new Runnable() {@Overridepublic void run() {System.out.println("Task executed!");}};// Schedule the task to run every 2 seconds with an initial delay of 1 secondscheduler.scheduleAtFixedRate(task, 1, 2, TimeUnit.SECONDS);}
}

使用 Quartz

  • Quartz 是一个功能强大且灵活的开源任务调度框架。

示例代码:

import org.quartz.Job;
import org.quartz.JobExecutionContext;
import org.quartz.JobExecutionException;
import org.quartz.Scheduler;
import org.quartz.SchedulerException;
import org.quartz.impl.StdSchedulerFactory;
import org.quartz.JobBuilder;
import org.quartz.Trigger;
import org.quartz.TriggerBuilder;
import org.quartz.SimpleScheduleBuilder;public class QuartzExample {public static class HelloJob implements Job {@Overridepublic void execute(JobExecutionContext context) throws JobExecutionException {System.out.println("Hello, Quartz!");}}public static void main(String[] args) throws SchedulerException {Scheduler scheduler = StdSchedulerFactory.getDefaultScheduler();JobDetail job = JobBuilder.newJob(HelloJob.class).withIdentity("myJob", "group1").build();Trigger trigger = TriggerBuilder.newTrigger().withIdentity("myTrigger", "group1").startNow().withSchedule(SimpleScheduleBuilder.simpleSchedule().withIntervalInSeconds(2).repeatForever()).build();scheduler.scheduleJob(job, trigger);scheduler.start();}
}

以上是三种常见的定时任务实现方法,每种方法都有其优缺点,可以根据具体需求选择合适的方案。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/bicheng/24137.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

简单使用vue2和elementUI自定义audio支持拖拽进度

<template><div class"music-player"><audio ref"audio" :src"src" timeupdate"updateTime" loadedmetadata"loadedmetadata" ended"onAudioEnded"></audio><!-- 播放暂停按钮 -->…

问题:新零售是以消费者体验为中心的数据驱动的泛零售形态,是基于大数据的“人货场“重构 #其他#知识分享

问题&#xff1a;新零售是以消费者体验为中心的数据驱动的泛零售形态,是基于大数据的"人货场"重构 参考答案如图所示

【PL理论】(8) F#:列表高阶函数之 filter 函数 | 内联谓词函数 | 链式操作:先过滤再映射

&#x1f4ad; 写在前面&#xff1a;上一章中&#xff0c;我们详细讲解了列表的合并&#xff0c;本章我们来详细讲解一下列表的过滤&#xff0c;在 F# 中&#xff0c;过滤列表是指从列表中提取满足某个条件的元素&#xff0c;形成一个新的列表。这个操作通常使用 List.filter 函…

Turnitin揭露AI写作痕迹,是否会影响论述是重复率?

Turnitin&#xff08;www.checktoo.com&#xff09;为学术界提供了便捷的服务&#xff0c;以确保论文的原创性和学术诚信。然而&#xff0c;许多学生和研究人员在使用Turnitin时&#xff0c;常常会想Turnitin查论文AI率和重复率之间的关系。那么&#xff0c;使用Turnitin查重论…

LeetCode-day04-2938. 区分黑球与白球

LeetCode-day04-2938. 区分黑球与白球 题目描述示例示例1&#xff1a;示例2&#xff1a; 思路代码 题目描述 桌子上有 n 个球&#xff0c;每个球的颜色不是黑色&#xff0c;就是白色。 给你一个长度为 n 、下标从 0 开始的二进制字符串 s&#xff0c;其中 1 和 0 分别代表黑色…

Centos7安装Zookeeper

Centos7安装Zookeeper 准备工作 https://zookeeper.apache.org/releases.html 下载稳定版的安装包。【注意&#xff1a;下载的是xxx-bin.tar.gz包 是可运行的zookeeper 而 xxx.tar.gz是源码包不可运行】 上传zookeeper的压缩包到指定目录/usr/local/zookeeper/ 安装Zookeepe…

从写简历到谈薪资的最全教程

从写简历到谈薪资的最全教程 目录简历注意事项举个例子写简历投递简历也有技巧模拟面试的重要性面试经验怎么刷不断迭代达越来越强斗智斗勇谈薪资拿到offer就结束了吗&#xff1f;我能给你的帮助 目录 大家好&#xff0c;我是一名普通本科毕业的学生&#xff0c;工作数年&#…

移动端 UI 风格,彰显品质

移动端 UI 风格&#xff0c;彰显品质

中子介程三

X$XFX$XqXyXqX$XFX$XqXyXqX$XαXηXtXαX$XWXyX$XyXWX$XpXαXqXηX$XeXαXhX$XyX$XpX$XyX$XyXeXαX$XqXyXqX$XαXeXyX$XyX$XpX$XyX$XhXαXeX$XηXqXαXpX$XWXyX$XyXWX$XαXtXηXαXpX$XEX$XZX$XpXαXηXtXαX$XWXyX$XyXWX$XpXαXqXηX$XeXαXhX$XyX$XpX$XyX$XyXeXαX$XqXyXqX$X…

嵌入式学习——网络编程(UDP)——day30

1. 协议 通信双方约定的一套标准成为协议 2. 国际网络协议标准 2.1 OSI七层模型(理论模型) 应用层:传输的数据&#xff08;a.out&#xff09; 表示层:数据是否加密 会话层:是否需要建立会话链接&#xff08;网络断开连接状态&#xff09; …

shell 变量引用 ${}、$,传参 $1、$2,四则运算 $[]

变量引用 两种&#xff1a; ${变量名} $变量名 例如&#xff1a; filepath"/home/mytool" filename"t1.txt" 可以写成 echo "$filepath/$filename" 或者 echo "${filepath}/${filename}"打印结果&#xff1a; /home/mytool/t1.tx…

[力扣题解] 617. 合并二叉树

题目&#xff1a;617. 合并二叉树 思路 递归法遍历&#xff0c;随便一种遍历方式都可以&#xff0c;以前序遍历为例&#xff1b; 代码 class Solution { public:TreeNode* mergeTrees(TreeNode* root1, TreeNode* root2) {if(root1 NULL){return root2;}if(root2 NULL){r…

Java面试题:Redis数据过期策略

Redis数据过期策略 数据过期之后对数据进行删除的处理 惰性删除 每次需要该key时对key进行检查 如果过期就删除,反之就返回该key 对cpu友好,不用浪费时间进行过期检查 对内存不友好,如果key过期但没使用就会一直存在内存中不会释放 定期删除 每隔一段时间对一些key进行…

Linux软件安装以及网络请求和下载

目录 前言一、系统环境二、软件安装2.1 使用yum命令实现软件的自动化安装 三、网络请求和下载3.1 wget命令3.2 curl命令 总结 前言 本篇文章介绍如何在Linux系统上安装软件&#xff0c;以及如何发送网络请求并从网络下载文件。 一、系统环境 虚拟机版本&#xff1a;VMware W…

气膜乒乓球馆:新型体育设施的投资机遇—轻空间

乒乓球作为我国的国球&#xff0c;不仅在世界舞台上表现卓越&#xff0c;在国民的心目中也占有重要位置。随着科技的进步&#xff0c;气膜乒乓球馆作为一种新型体育设施&#xff0c;正逐渐走入大众视野&#xff0c;为乒乓球爱好者提供了一个舒适、安全、环保的运动场所。那么&a…

linux的编辑安装

yum remove 软件名 注意&#xff1a;yum安装自动解决各种依赖&#xff0c;安装位置固定不可改 编辑安装 安装源码包的过程&#xff1a; 1.解压源码包 2.进入解压目录 3.安装依赖 4.执行./configure 1)检查当前系统环境是否满足后续操作 2)指定软件…

Linux环境---在线安装MYSQL数据库

Linux环境—在线安装MYSQL数据库 一、使用步骤 1.安装环境 Mysql 驱动 8.0 需要 jdk1.8 才行。 JDK版本&#xff1a;1.8 参考文档 MYSQL版本&#xff1a;8.0.2 下载链接: https://pan.baidu.com/s/1MwXIilSL6EY3OuS7WtpySA?pwdg263 操作系统&#xff1a;CentOS 1.1 建立存…

【论文阅读】MODELING AND SOLVING THE TRAVELING SALESMAN PROBLEM WITH PRIORITY PRIZES

文章目录 论文基本信息摘要1.引言2. INTEGER QUADRATIC PROGRAM FOR TSPPP3. MIXED INTEGER LINEAR PROGRAMS FOR TSPPP4. TABU SEARCH ALGORITHM FOR TSPPP5. COMPUTATIONAL RESULTS6. CONCLUDING REMARKS补充 论文基本信息 《MODELING AND SOLVING THE TRAVELING SALESMAN P…

hadoop部署hive

1.安装mysql数据库 这里采用docker部署mysql,如果没有安装docker #安装yum工具 yum install -y yum-utils device-mapper-persistent-data lvm2 --skip-broken #设置docker镜像源 yum-config-manager --add-repo https://mirrors.aliyun.com/docker-ce/linux/centos/…

搜索引擎优化服务如何寻找?

首先你要了解搜索引擎优化&#xff0c;也就是seo具体是什么&#xff0c;要做些什么&#xff0c;然后就是确定你自身业务的需求&#xff0c;是要特定的关键词排名&#xff0c;还是整体网站流量的提升&#xff0c;还是想要优化目前的网站 接下来你就可以正式的寻找真正能帮助到你…