timer和ScheduledThreadPoolExecutor定时任务和每日固定时间执行

Easter79
• 阅读 758

//ScheduledThreadPoolExecutor每三秒执行一次

    public static void main(String[] args) {
        ScheduledThreadPoolExecutor  scheduled = new ScheduledThreadPoolExecutor(2);
        scheduled.scheduleAtFixedRate(new Runnable() {
            int i = 0;
            @Override
            public void run() {
                System.out.println("执行"+i++);
            }
        },0,3000,TimeUnit.MILLISECONDS);

}

//timer每三秒执行一次

    public static void main(String[] args) {
        Date sendDate = new Date();
        Timer dTimer = new Timer();
        dTimer.schedule(new TimerTask() {
            @Override

       int i = 0;
            public void run() {
                System.out.print("执行"+i++);
            }
        }, sendDate,3000);

}

//timer每日定时执行一次

    public static void main(String[] args) {
        long daySpan = 24 * 60 * 60 * 1000;
        SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd 15:29:00");
        try {
            Date startTime = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss").parse(sdf.format(new Date()));
            if (System.currentTimeMillis() > startTime.getTime()){
                startTime = new Date(startTime.getTime() + daySpan);
            }
            Timer t = new Timer();
            TimerTask task = new TimerTask() {
                @Override
                public void run() {
                    System.out.print("定时器执行");
                }
            };
            t.schedule(task, startTime, daySpan);
        } catch (Exception e) {
            e.printStackTrace();
        }
    }

点赞
收藏
评论区
推荐文章
待兔 待兔
3个月前
手写Java HashMap源码
HashMap的使用教程HashMap的使用教程HashMap的使用教程HashMap的使用教程HashMap的使用教程22
Wesley13 Wesley13
3年前
java 定时任务之Timer
java定时任务之TimerTimer是什么?Timer位于java.util包中。官方API的描述是用来控制任务执行的,每个任务可以执行一次,也可以执行多次。在实际应用中,我们可以用它来控制某个任务在特定的时间执行,或者按照某个固定频率或者时间间隔执行。Timer怎么用?它提供了三类方
Souleigh ✨ Souleigh ✨
3年前
php为什么不支持定时器?
常见的定时器有两种:一种周期性定时执行,例如每天的凌晨三点出报表;另一种在指定时间后执行(一次),例如会员登录系统五分钟后发放每日登录奖励。两种情况对应shell中的cron和at命令,与JavaScript中的setInterval和setTimeout函数类似(严格来说setInterval是周期性执行,指定时间点执行需要自行处理)。image
Wesley13 Wesley13
3年前
Java实现几分钟之后调度任务的定时器
几分钟之后执行某一操作,使用定时器Timer可以实现,Timer是jdk中提供的一个定时器工具,使用的时候会在主线程之外起一个单独的线程执行指定的计划任务,可以指定执行一次或者反复执行多次。具体实现如下:1packagecom.aone.foottalk.common;23importjava
Stella981 Stella981
3年前
HIVE 时间操作函数
日期函数UNIX时间戳转日期函数: from\_unixtime语法:   from\_unixtime(bigint unixtime\, string format\)返回值: string说明: 转化UNIX时间戳(从19700101 00:00:00 UTC到指定时间的秒数)到当前时区的时间格式举例:hive   selec
Stella981 Stella981
3年前
Linux的定时任务
任务计划的条件:1.在未来的某个时间点执行一次某个任务(atbatch)2.周期性的执行某个任务(cron)at在指定时间执行任务_用法_at\选项参数\\时间\_选项参数_\l      查看作业\c      显示即将执行任务的细节\d      使用任务id号
Stella981 Stella981
3年前
Spring Boot 动态修改 Scheduled (系统启动默认执行,动态修改)
场景:可配置的Scheduled执行时间,正常的Scheduled 是在项目启动的时候固定死的,没办法根据调用后台代码自动更新Scheduled执行时间例如:系统启动读取时间 Cron: 003\\?,通过执行后台方法可以动态配置 Cron时间格式,并且清楚掉原本执行任务,执行新的设置定时任务时间1、
Easter79 Easter79
3年前
ThreadPoolExecutor和ScheduledThreadPoolExecutor
ThreadPoolExecutor构造方法参数说明corePoolSize核心线程数,默认情况下核心线程会一直存活,即使处于闲置状态也不会受存keepAliveTime限制。除非将allowCoreThreadTimeOut设置为true。maximumPoolSize线程池所能容纳的最大线程数。超过这个数的线程将被阻塞。当任务队列为没有
Wesley13 Wesley13
3年前
Java 定时任务 & 任务调度
任务调度是指基于给定时间点,给定时间间隔或者给定执行次数自动执行任务。方式1:通过Thread来实现例如如下的代码,可以每隔1000毫秒做一次打印操作。publicclassJob_Schedule_Test1{publicstatic
IT全栈视野 IT全栈视野
2个月前
在 Go 语言中,使用多种方式实现定时任务
1.使用time包的After和Ticker功能packagemainimport("fmt""time")funcmain()//单次定时任务timer:time.After(5time.Second)<timerfmt.Println("5秒后执行的单
Easter79
Easter79
Lv1
今生可爱与温柔,每一样都不能少。
文章
2.8k
粉丝
5
获赞
1.2k