[英]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.