java—如何安排调度程序以多个时间间隔运行

roejwanj  于 2021-06-29  发布在  Java
关注(0)|答案(1)|浏览(416)

我有一个调度程序,每五分钟运行一次。我想每1小时运行一次调度程序。我希望同一个调度程序在两个不同的时间定期运行。

ScheduledExecutorService scheduledThreadPool = Executors.newScheduledThreadPool(1);
        scheduledThreadPool.scheduleAtFixedRate(new Runnable() {
            public void run() 
              {
              }, 0, 5, TimeUnit.MINUTES);

我是这样写的,每5分钟一次。现在,我希望同样的计划运行每1小时也。

shstlldc

shstlldc1#

每五分钟运行一个任务意味着你的任务也在每小时运行一次。12次之后,一个小时就过去了。所以每12次跑步间隔一小时。12*5分钟=60分钟=1小时。
如果您每小时都要运行不同的任务,请致电 scheduledAt… 你的方法又来了 ScheduledExecutorService 对象。

Runnable runnableA = new Runnable() { public void run() {…} ; }
Runnable runnableB = new Runnable() { public void run() {…} ; }

ScheduledExecutorService scheduledThreadPool = Executors.newScheduledThreadPool(1);

scheduledThreadPool.scheduleAtFixedRate( runnableA , 0 , 5 , TimeUnit.MINUTES );
scheduledThreadPool.scheduleAtFixedRate( runnableB , 0 , 1 , TimeUnit.HOURS );

相关问题