Merge remote-tracking branch 'origin/test' into dev
This commit is contained in:
+2
-1
@@ -21,6 +21,7 @@ import java.util.UUID;
|
||||
@Component
|
||||
@ConditionalOnProperty(prefix = "baiyue.carrier-schedule.scheduler", name = "enabled", havingValue = "true")
|
||||
public class CarrierScheduleQueryScheduler {
|
||||
static final String PROVIDER_TEMPORARILY_UNAVAILABLE = "轨迹供应商暂时不可用,请稍后重试或人工补录节点";
|
||||
private final CarrierScheduleQueryRepository repository;
|
||||
private final CarrierScheduleQueryService service;
|
||||
private final CarrierScheduleIntegrationClient integration;
|
||||
@@ -96,7 +97,7 @@ public class CarrierScheduleQueryScheduler {
|
||||
result.errorMessage());
|
||||
} catch (RuntimeException exception) {
|
||||
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");
|
||||
}
|
||||
|
||||
@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) {
|
||||
CarrierScheduleQueryEntity value = new CarrierScheduleQueryEntity(); value.setId(id); return value;
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user