Spring에서는 일반적으로 @Scheduled 주석을 사용하여 고정된 간격으로 작업을 예약합니다. 그러나 때로는 애플리케이션을 다시 배포하지 않고 일정을 동적으로 조정해야 할 수도 있습니다. 이를 위해서는 맞춤형 접근 방식을 사용해야 합니다.
한 가지 솔루션은 트리거를 활용하여 다음 실행 시간을 즉시 계산하는 것입니다.
다음 구성 코드를 고려하십시오.
@Configuration @EnableScheduling public class MyAppConfig implements SchedulingConfigurer { @Autowired Environment env; @Override public void configureTasks(ScheduledTaskRegistrar taskRegistrar) { taskRegistrar.setScheduler(taskExecutor()); taskRegistrar.addTriggerTask( new Runnable() { @Override public void run() { ... } }, new Trigger() { @Override public Date nextExecutionTime(TriggerContext triggerContext) { ... // Calculate next execution time dynamically ... } } ); } }
Trigger 인터페이스는 다음을 계산하는 데 사용할 수 있는 nextExecutionTime 메서드를 정의합니다. 요구 사항에 따른 다음 실행 시간. 이 예에서 Calendar 클래스는 myRate 환경 속성에 저장된 값을 기반으로 다음 실행 시간을 계산하는 데 사용됩니다.
트리거를 사용하면 별도의 조치 없이 작업 일정을 동적으로 조정할 수 있습니다. 이동. 이를 통해 예정된 작업에 대한 유연성과 제어력을 제공하여 변화하는 요구 사항에 적응할 수 있습니다.
위 내용은 봄에 예약된 작업의 고정 비율을 어떻게 동적으로 조정할 수 있습니까?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!