당신은 방금이 속성을 외부화되고 위의 spring.boot.schedule.rate
이 application.properties
spring.boot.schedule.rate = 5000
오해 질문에 외부의 건물 인 사건에 대한 @Scheduled(fixedRateString = "${spring.boot.schedule.rate}")
을 사용할 수 있습니다 . 동적 솔루션을
는, 어쩌면 이것이 annonation에 SPEL을 사용하여 작업해야한다 :
@Service
public class ScheduledService {
@Autowired
private FixRateProperty fixRateProperty;
@Scheduled(fixedRateString = "#{fixRateProperty.fixRate}")
private void reportCurrentTime() {
System.out.println(new Date());;
}
}
이 그래서 당신은 속성의 비율을 구체화 할 수있는 FixRateProperty
@Component
public class FixRateProperty {
private Long fixRate = 500L;
public Long getFixRate() {
return fixRate;
}
public void setFixRate(Long fixRate) {
this.fixRate = fixRate;
}
}
입니다 fixRate
을 어딘가에 설정하십시오.
좋아 보이지만 응용 프로그램 시작시에만 실행됩니다. 그렇습니까? 항상 예약 된 작업을 시작하고 중지해야합니다. –
은 동적 인 이유를 설명하는 답변을 업데이트했습니다. – alexbt
해결책을 찾았지만 조금 다릅니다. 아마 내 요구에 더 적합합니다. 나는 표결을했고, 그에 대한 피드백을 얻기 위해 내 솔루션을 추가 할 것이다. 감사! –