Merge remote-tracking branch 'origin/test' into dev
This commit is contained in:
+2
-1
@@ -21,6 +21,7 @@ import java.util.UUID;
|
|||||||
@Component
|
@Component
|
||||||
@ConditionalOnProperty(prefix = "baiyue.carrier-schedule.scheduler", name = "enabled", havingValue = "true")
|
@ConditionalOnProperty(prefix = "baiyue.carrier-schedule.scheduler", name = "enabled", havingValue = "true")
|
||||||
public class CarrierScheduleQueryScheduler {
|
public class CarrierScheduleQueryScheduler {
|
||||||
|
static final String PROVIDER_TEMPORARILY_UNAVAILABLE = "轨迹供应商暂时不可用,请稍后重试或人工补录节点";
|
||||||
private final CarrierScheduleQueryRepository repository;
|
private final CarrierScheduleQueryRepository repository;
|
||||||
private final CarrierScheduleQueryService service;
|
private final CarrierScheduleQueryService service;
|
||||||
private final CarrierScheduleIntegrationClient integration;
|
private final CarrierScheduleIntegrationClient integration;
|
||||||
@@ -96,7 +97,7 @@ public class CarrierScheduleQueryScheduler {
|
|||||||
result.errorMessage());
|
result.errorMessage());
|
||||||
} catch (RuntimeException exception) {
|
} catch (RuntimeException exception) {
|
||||||
service.completeScheduledAttempt(candidate.getId(), "RETRYABLE_FAILURE", "PROVIDER_CALL_FAILED",
|
service.completeScheduledAttempt(candidate.getId(), "RETRYABLE_FAILURE", "PROVIDER_CALL_FAILED",
|
||||||
exception.getClass().getSimpleName());
|
PROVIDER_TEMPORARILY_UNAVAILABLE);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
+16
@@ -158,6 +158,22 @@ class CarrierScheduleQuerySchedulerTest {
|
|||||||
verify(service).completeScheduledAttempt(1L, "RETRYABLE_FAILURE", "HTTP_503", "unavailable");
|
verify(service).completeScheduledAttempt(1L, "RETRYABLE_FAILURE", "HTTP_503", "unavailable");
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@Test
|
||||||
|
void providerClientFailurePersistsBusinessSafeMessageInsteadOfFrameworkExceptionName() {
|
||||||
|
CarrierScheduleQueryRepository repository = mock(CarrierScheduleQueryRepository.class);
|
||||||
|
CarrierScheduleQueryService service = mock(CarrierScheduleQueryService.class);
|
||||||
|
CarrierScheduleIntegrationClient integration = mock(CarrierScheduleIntegrationClient.class);
|
||||||
|
CarrierScheduleQueryScheduler scheduler = new CarrierScheduleQueryScheduler(repository, service, integration);
|
||||||
|
CarrierScheduleQueryEntity task = task(1L);
|
||||||
|
when(repository.claimLease(anyLong(), anyString(), any(), any())).thenReturn(true);
|
||||||
|
when(integration.query(any(), any())).thenThrow(new RuntimeException("NoFallbackAvailableException"));
|
||||||
|
|
||||||
|
scheduler.execute(task, LocalDateTime.of(2026, 9, 9, 9, 0));
|
||||||
|
|
||||||
|
verify(service).completeScheduledAttempt(1L, "RETRYABLE_FAILURE", "PROVIDER_CALL_FAILED",
|
||||||
|
CarrierScheduleQueryScheduler.PROVIDER_TEMPORARILY_UNAVAILABLE);
|
||||||
|
}
|
||||||
|
|
||||||
private static CarrierScheduleQueryEntity task(long id) {
|
private static CarrierScheduleQueryEntity task(long id) {
|
||||||
CarrierScheduleQueryEntity value = new CarrierScheduleQueryEntity(); value.setId(id); return value;
|
CarrierScheduleQueryEntity value = new CarrierScheduleQueryEntity(); value.setId(id); return value;
|
||||||
}
|
}
|
||||||
|
|||||||
Reference in New Issue
Block a user