当前位置: 首页 > 知识库问答 >
问题:

特定方法完成后如何启动/停止@Scheduled task

孙京
2023-03-14

我有一个计划任务,当应用程序上下文加载时开始工作,并一直运行到程序结束。

我想节省一些资源,只在需要时运行计划任务。

下面是我想象的抽象代码。

@EnableScheduling    
public class Scheduling {
    
        @Scheduled(fixedRate = 1000)
        public void scheduledTask() {
           log.info("scheduled task has been started");
        }
    
        public void triggerStart() {
           log.info("after this @Scheduled task will start working");
        }
    
        public void triggerFinish() {
           log.info("after this @Scheduled task will stop working");
        }
}

我很好奇,有可能达到这样的结果吗?

共有1个答案

龚永新
2023-03-14

一个非常简单的方法是添加一个布尔开关:

@Scheduled(fixedRate = 1000)
public void scheduledTask() {
   if (enabled) {
       log.info("scheduled task has been started");
   }
}

public void triggerStart() {
   enabled = true;
   log.info("after this @Scheduled task will start working");
}

public void triggerFinish() {
   enabled = false;
   log.info("after this @Scheduled task will stop working");
}
 类似资料:
  • 问题内容: 我正在使用我的应用程序拨打电话。 一段时间后有什么办法可以终止通话?还是在ACTION_CALL开始之前设置一个计时器? 我正在使用Prasanta博客中的以下代码,但由于某些原因,导致出现以下错误。有什么建议? 无法解决 问题答案: 您的问题已被问过很多次了。简短的答案是,没有官方的方法可以做到这一点。 在一个问题中,有人建议打开飞行模式(应用程序当然需要权限才能执行此操作)。这很粗

  • 我无法停止。它的样式是。如何启动和停止圆形的小型?

  • 我试图用systemctl配置Tomcat8.5.37,以在Ubuntu16.04上作为守护进程启动服务器。 为此,我在/etc/systemd/system/tomcat8.service创建了以下服务文件: Tomcat服务器是直接从apache下载的,并且只进行了解压缩。JDK是最新的Oracle JDK1.8。 当我通过startup.sh直接启动tomcat时,一切都很好。但是当我使用s

  • 对不起,老问题。我已经澄清了。我如何用我可怜的线程类开始停止线程? 编辑:它在循环中,我想在代码开头再次重新启动它。我如何启动停止重新启动? 我的班级: 在主代码中,我希望:

  • 参考 workerman手册 http://doc3.workerman.net/install/start-and-stop.html

  • 注意Workerman启动停止等命令都是在命令行中完成的。 要启动Workerman,首先需要有一个启动入口文件,里面定义了服务监听的端口及协议。可以参考入门指引--简单开发实例部分 这里以workerman-chat为例,它的启动入口为start.php。 启动 以debug(调试)方式启动 php start.php start 以daemon(守护进程)方式启动 php start.php