java scheduledfuture,检查定期ScheduledFuture是否正在运行

I have a periodic task scheduled via Spring TaskScheduler.schedule(Runnable, Trigger).

Given the returned ScheduledFuture, is there any way to check, if the task is running at current moment?

解决方案

You can change you Runnable like this:

class Runner implements Runnable{

public volatile boolean RUNNING = false;

public void run(){

RUNNING = true;

try{

// Your code

} finally {

RUNNING = false;

}

}

}

edit

Thought operations with boolean are atomic and don't need to be volatile.

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
ScheduledFutureJava中的一个接口,它继承自Future接口,并且扩展了ScheduledExecutorService接口。ScheduledFuture用于表示一个在未来某个时间会执行完成的任务,并且可以提供对这个任务执行状态的查询和取消操作。 ScheduledFuture提供了一些方法来管理计划执行任务的状态和操作,其中最常用的方法是get()、cancel()和isCancelled()等。get()方法用于获取任务执行的结果,如果任务还没有执行完成,则会阻塞等待任务执行完成后返回结果。cancel()方法用于取消任务的执行,如果任务已经在执行或者已经完成,则取消操作不会起作用。isCancelled()方法用于判断任务是否被取消。 ScheduledFuture还提供了其他一些方法,例如getDelay(TimeUnit unit)用于获取任务的延迟执行时间,isDone()方法用于判断任务是否已经执行完成。除了这些方法,ScheduledFuture还提供了一些其他的方法来支持任务的延迟执行、周期性执行等功能。 ScheduledFuture的一个常见的应用场景是在计划任务的调度中使用,例如在定时任务中执行某个任务,或者在一段时间后执行某个任务。通过ScheduledExecutorService提供的方法,我们可以创建ScheduledFuture对象,并且可以通过ScheduledFuture来管理和操作计划任务的执行状态。 总之,ScheduledFutureJava中用于管理计划执行任务状态和操作的接口。它提供了丰富的方法,可以用于获取任务执行的结果、取消任务的执行、判断任务是否已经完成等操作。通过ScheduledFuture,我们可以实现对计划任务的灵活管理和控制。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值