检查定期ScheduledFuture是否正在运行 [英] Checking if periodic ScheduledFuture is running now

查看:1813
本文介绍了检查定期ScheduledFuture是否正在运行的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

我有一个通过Spring TaskScheduler.schedule(Runnable,Trigger)计划的周期性任务。

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

返回 ScheduledFuture ,是否有任何方法检查,如果任务当前正在运行?

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

推荐答案

你可以这样改变你的Runnable:

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;
        }
    }
}

strong>
使用 boolean 的思考操作是原子的,不需要是volatile。

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

这篇关于检查定期ScheduledFuture是否正在运行的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆