diff --git a/config/nacos/cn/firstleg-service.yml b/config/nacos/cn/firstleg-service.yml index 36a658d02..3ca256ca4 100644 --- a/config/nacos/cn/firstleg-service.yml +++ b/config/nacos/cn/firstleg-service.yml @@ -21,6 +21,7 @@ baiyue: emc-automated: ${EMC_TRACKING_ENABLED:false} hede-automated: ${HEDE_TRACKING_ENABLED:false} scheduler: + enabled: ${CARRIER_SCHEDULE_SCHEDULER_ENABLED:false} zone: ${CARRIER_SCHEDULE_ZONE:Asia/Shanghai} scan-fixed-delay: ${CARRIER_SCHEDULE_SCAN_FIXED_DELAY:PT1M} scan-initial-delay: ${CARRIER_SCHEDULE_SCAN_INITIAL_DELAY:PT10S} diff --git a/config/nacos/local/firstleg-service.yml b/config/nacos/local/firstleg-service.yml index b893c82b5..1da4fd0e1 100644 --- a/config/nacos/local/firstleg-service.yml +++ b/config/nacos/local/firstleg-service.yml @@ -15,6 +15,7 @@ baiyue.carrier-schedule.providers.cosco-official-api-enabled: ${COSCO_OPEN_API_E baiyue.carrier-schedule.providers.emc-automated: ${EMC_TRACKING_ENABLED:false} baiyue.carrier-schedule.providers.hede-automated: ${HEDE_TRACKING_ENABLED:false} baiyue.carrier-schedule.scheduler.zone: ${CARRIER_SCHEDULE_ZONE:Asia/Shanghai} +baiyue.carrier-schedule.scheduler.enabled: ${CARRIER_SCHEDULE_SCHEDULER_ENABLED:false} baiyue.carrier-schedule.scheduler.scan-fixed-delay: ${CARRIER_SCHEDULE_SCAN_FIXED_DELAY:PT1M} baiyue.carrier-schedule.scheduler.scan-initial-delay: ${CARRIER_SCHEDULE_SCAN_INITIAL_DELAY:PT10S} baiyue.carrier-schedule.scheduler.batch-size: ${CARRIER_SCHEDULE_BATCH_SIZE:20} diff --git a/deploy/docker-compose.yml b/deploy/docker-compose.yml index 8bfb76788..aad13a528 100644 --- a/deploy/docker-compose.yml +++ b/deploy/docker-compose.yml @@ -96,6 +96,7 @@ services: COSCO_OPEN_API_ENABLED: ${COSCO_OPEN_API_ENABLED:-false} EMC_TRACKING_ENABLED: ${EMC_TRACKING_ENABLED:-false} HEDE_TRACKING_ENABLED: ${HEDE_TRACKING_ENABLED:-false} + CARRIER_SCHEDULE_SCHEDULER_ENABLED: ${CARRIER_SCHEDULE_SCHEDULER_ENABLED:-false} CARRIER_SCHEDULE_ZONE: ${CARRIER_SCHEDULE_ZONE:-Asia/Shanghai} CARRIER_SCHEDULE_SCAN_FIXED_DELAY: ${CARRIER_SCHEDULE_SCAN_FIXED_DELAY:-PT1M} CARRIER_SCHEDULE_SCAN_INITIAL_DELAY: ${CARRIER_SCHEDULE_SCAN_INITIAL_DELAY:-PT10S} diff --git a/firstleg/src/main/java/com/baiyue/firstleg/portschedule/service/CarrierScheduleQueryScheduler.java b/firstleg/src/main/java/com/baiyue/firstleg/portschedule/service/CarrierScheduleQueryScheduler.java index 3f746a807..22fee924f 100644 --- a/firstleg/src/main/java/com/baiyue/firstleg/portschedule/service/CarrierScheduleQueryScheduler.java +++ b/firstleg/src/main/java/com/baiyue/firstleg/portschedule/service/CarrierScheduleQueryScheduler.java @@ -6,6 +6,7 @@ import com.baiyue.firstleg.portschedule.dto.CarrierScheduleQueryDtos.ProviderObs import com.baiyue.firstleg.portschedule.dto.CarrierScheduleQueryDtos.ProviderExceptionRequest; import com.baiyue.firstleg.portschedule.entity.CarrierScheduleQueryEntity; import com.baiyue.firstleg.portschedule.repository.CarrierScheduleQueryRepository; +import org.springframework.boot.autoconfigure.condition.ConditionalOnProperty; import org.springframework.beans.factory.annotation.Value; import org.springframework.scheduling.annotation.Scheduled; import org.springframework.stereotype.Component; @@ -18,6 +19,7 @@ import java.util.List; import java.util.UUID; @Component +@ConditionalOnProperty(prefix = "baiyue.carrier-schedule.scheduler", name = "enabled", havingValue = "true") public class CarrierScheduleQueryScheduler { private final CarrierScheduleQueryRepository repository; private final CarrierScheduleQueryService service; diff --git a/firstleg/src/main/resources/application.yml b/firstleg/src/main/resources/application.yml index bd086dd12..fbb976456 100644 --- a/firstleg/src/main/resources/application.yml +++ b/firstleg/src/main/resources/application.yml @@ -39,6 +39,7 @@ baiyue: emc-automated: ${EMC_TRACKING_ENABLED:false} hede-automated: ${HEDE_TRACKING_ENABLED:false} scheduler: + enabled: ${CARRIER_SCHEDULE_SCHEDULER_ENABLED:false} zone: ${CARRIER_SCHEDULE_ZONE:Asia/Shanghai} scan-fixed-delay: ${CARRIER_SCHEDULE_SCAN_FIXED_DELAY:PT1M} scan-initial-delay: ${CARRIER_SCHEDULE_SCAN_INITIAL_DELAY:PT10S} diff --git a/firstleg/src/test/java/com/baiyue/firstleg/portschedule/service/CarrierScheduleQuerySchedulerTest.java b/firstleg/src/test/java/com/baiyue/firstleg/portschedule/service/CarrierScheduleQuerySchedulerTest.java index 8607f987d..cee52bf2b 100644 --- a/firstleg/src/test/java/com/baiyue/firstleg/portschedule/service/CarrierScheduleQuerySchedulerTest.java +++ b/firstleg/src/test/java/com/baiyue/firstleg/portschedule/service/CarrierScheduleQuerySchedulerTest.java @@ -4,6 +4,7 @@ import com.baiyue.firstleg.client.CarrierScheduleIntegrationClient; import com.baiyue.firstleg.portschedule.entity.CarrierScheduleQueryEntity; import com.baiyue.firstleg.portschedule.repository.CarrierScheduleQueryRepository; import org.junit.jupiter.api.Test; +import org.springframework.boot.autoconfigure.condition.ConditionalOnProperty; import org.springframework.scheduling.annotation.Scheduled; import org.springframework.test.util.ReflectionTestUtils; @@ -27,6 +28,18 @@ import static org.mockito.Mockito.when; import static org.mockito.Mockito.never; class CarrierScheduleQuerySchedulerTest { + @Test + void isDisabledUnlessTheAutomaticSchedulerIsExplicitlyEnabled() { + ConditionalOnProperty condition = CarrierScheduleQueryScheduler.class + .getAnnotation(ConditionalOnProperty.class); + + assertThat(condition).isNotNull(); + assertThat(condition.prefix()).isEqualTo("baiyue.carrier-schedule.scheduler"); + assertThat(condition.name()).containsExactly("enabled"); + assertThat(condition.havingValue()).isEqualTo("true"); + assertThat(condition.matchIfMissing()).isFalse(); + } + @Test void declaresOneConfigurableDueScannerRatherThanDirectCarrierCronCalls() throws Exception { Scheduled[] schedules = CarrierScheduleQueryScheduler.class.getMethod("poll").getAnnotationsByType(Scheduled.class);