繁体   English   中英

如何启动和停止 spring 预定作业?

[英]How to start and stop spring scheduled job?

一般来说,我需要从 TUE-SAT 每 5 分钟运行一次工作,但在某些情况下停止工作直到一天结束(00h:00mUTC)并在第二天重新开始(00h:00mUTC),例如 TUE-作业开始每 5 分钟处理一次,但一旦出现某种情况,作业必须停止,直到一天结束,只要出现某种情况,WED 作业就必须开始处理

这有可能实现吗?

如果你真的想在 Spring 中完成这一切,这样的事情可能会起作用,但未经测试:

像这样的服务:

@Getter
@Setter
@Service
public class MyService {

    private boolean pause = false;

    @Scheduled(cron = "*/5 * * * * TUE-SAT")
    public void doStuff() {
        if (LocalTime.now().isAfter(LocalTime.MIDNIGHT)) {
            pause = false;
        }
        if (pause) {
            return;
        }
        System.out.println("do stuff");
    }
}

像这样的 controller:

@RestController
public class Controller {

    @Autowired
    private MyService service;

    @PutMapping("/pause")
    public void pause() {
        service.setPause(true);
    }
}

暂停作业

curl --request PUT http://localhost:8080/pause

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM