SpringBoot 타이머/타이머 작업: 지정된 주기 동안 작업을 수행합니다.
실현 방식은 세 가지가 있다(더 많은 실현이 있을 수 있는데 이 세 가지는 건물주가 현재 알고 있는 것일 뿐).
1. 정적 타이머, 주기 수정 불가
@Configuration("myScheduled")
@EnableScheduling
public class ScheduledDemo{
// 10
@Scheduled(cron="0/10 * * * * ?")
public void timmer(){
System.out.println(" ");
}
}
2. 동적 타이머
4
// setCron
@Component("myScheduled")
public class ScheduledDemo implements SchedulingConfigurer{
// 10
private String cron = "0/10 * * * * ?";
@Override
public void configureTasks(ScheduledTaskRegistrar taskRegistrar) {
// TODO Auto-generated method stub
taskRegistrar.addTriggerTask(new Runnable() {
@Override
public void run() {
// TODO Auto-generated method stub
System.out.println(" ");
}
}, new Trigger() {
@Override
public Date nextExecutionTime(TriggerContext triggerContext) {
return new CronTrigger(cron).nextExecutionTime(triggerContext);
}
});
}
public void setCron(String cron) {
this.cron = cron;
}
}
3. 동적 타이머: 다중 스레드 타이머 작업 수행, 실행 스레드 탱크 수 설정 가능(기본 스레드)@Component("myScheduled")
public class ScheduledImpl{
private ScheduledFuture> future;
@Autowired
private ThreadPoolTaskScheduler threadPoolTaskScheduler;
@Bean
public ThreadPoolTaskScheduler threadPoolTaskScheduler() {
return new ThreadPoolTaskScheduler();
}
@Override
public void setCron(final String cron) {
stopCron();
future = threadPoolTaskScheduler.schedule(new Runnable() {
@Override
public void run() {
// TODO Auto-generated method stub
System.out.println(" ");
}
}, new Trigger() {
@Override
public Date nextExecutionTime(TriggerContext triggerContext) {
if(cron==null || "".equals(cron)) {
return null;
}
CronTrigger cronTrigger = new CronTrigger(cron);
return cronTrigger.nextExecutionTime(triggerContext);
}
});
}
@Override
public void stopCron() {
if(future!=null) {
future.cancel(true);
}
}
}
cron의 매개 변수 설명, 상세한 설명은 직접 인터넷에서 찾아보세요!
대략설명: 초분시 일월일년(생략가능)
/뒤에 주기 표시
- 범위
요일용?,일과가 혼동되는 것을 방지하기 위해서, 만약 일요일에 값이 있다면, 일용?
“0/10 * * * * ?”매10초
“0 0/10 * * * ?”매 10
우정 링크:https://www.cnblogs.com/linjiqin/archive/2013/07/08/3178452.html
이 내용에 흥미가 있습니까?
현재 기사가 여러분의 문제를 해결하지 못하는 경우 AI 엔진은 머신러닝 분석(스마트 모델이 방금 만들어져 부정확한 경우가 있을 수 있음)을 통해 가장 유사한 기사를 추천합니다:
다양한 언어의 JSONJSON은 Javascript 표기법을 사용하여 데이터 구조를 레이아웃하는 데이터 형식입니다. 그러나 Javascript가 코드에서 이러한 구조를 나타낼 수 있는 유일한 언어는 아닙니다. 저는 일반적으로 '객체'{}...
텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
CC BY-SA 2.5, CC BY-SA 3.0 및 CC BY-SA 4.0에 따라 라이센스가 부여됩니다.