Spring Batch Tasklet для проверки файлов — требуется обработка исключений ⇐ JAVA
Spring Batch Tasklet для проверки файлов — требуется обработка исключений
import org.junit.jupiter.api.AfterEach; импортировать org.junit.jupiter.api.BeforeEach; импортировать org.junit.jupiter.api.Test; импортировать org.springframework.boot.builder.SpringApplicationBuilder; импортировать org.springframework.boot.test.context.runner.ApplicationContextRunner; импортировать java.time.Clock; импортировать java.time.ZoneId; импортировать java.util.TimeZone; импортировать статический org.junit.jupiter.api.Assertions.assertEquals; импортировать статический org.mockito.Mockito.mock; импортировать статический org.mockito.Mockito.when; класс BatchApplicationTest { частный окончательный ApplicationContextRunner contextRunner = новый ApplicationContextRunner (); @BeforeEach недействительный setUp() { TimeZone.setDefault(ноль); // Очищаем часовой пояс по умолчанию } @AfterEach недействительный TearDown () { TimeZone.setDefault(ноль); // Сбрасываем часовой пояс по умолчанию после тестов } @Тест void WhenApplicationStarts_thenTimeZoneIsSetToNewYork () { // Договариваться Ожидаемые часыClock = Clock.system(ZoneId.of("Америка/Нью_Йорк")); SpringApplicationBuilder jackApplicationBuilder = макет (SpringApplicationBuilder.class); когда (mockApplicationBuilder.sources(BatchApplication.class)).thenReturn(mockApplicationBuilder); // Действовать this.contextRunner.withUserConfiguration(BatchApplication.class) .run(контекст -> { // Утверждать Приложение BatchApplication = context.getBean(BatchApplication.class); Часы часы = app.getClock(); AssertEquals(expectedClock.getZone(), clock.getZone()); AssertEquals(TimeZone.getDefault().getID(), "Америка/Нью_Йорк"); }); } } Таслет спроектирован так, чтобы быть модульным и допускающим многократное использование, поскольку он будет частью нескольких пакетных заданий с одинаковыми требованиями к проверке файлов. Я использую аннотацию @Value Spring для внедрения путей к файлам из конфигурации приложения, что обеспечивает гибкость в различных средах (разработка, промежуточное хранение, производство).
Я столкнулся с трудностями при правильной обработке исключений. Когда создается исключение, я хочу убедиться, что оно зарегистрировано с достаточной подробностью и что статус завершения пакетного задания установлен так, чтобы указывать на сбой, запуская соответствующие последующие процессы в нашей настройке оркестрации заданий.
Кроме того, я ищу рекомендации по управлению ресурсами в тасклете, особенно по освобождению дескрипторов файлов и обеспечению правильного закрытия файловых потоков в случае ошибки.
Может ли кто-нибудь просмотреть мой подход к обработке исключений и управлению ресурсами? Мы будем очень признательны за любые идеи по повышению надежности и удобства сопровождения этого кода.
import org.junit.jupiter.api.AfterEach; импортировать org.junit.jupiter.api.BeforeEach; импортировать org.junit.jupiter.api.Test; импортировать org.springframework.boot.builder.SpringApplicationBuilder; импортировать org.springframework.boot.test.context.runner.ApplicationContextRunner; импортировать java.time.Clock; импортировать java.time.ZoneId; импортировать java.util.TimeZone; импортировать статический org.junit.jupiter.api.Assertions.assertEquals; импортировать статический org.mockito.Mockito.mock; импортировать статический org.mockito.Mockito.when; класс BatchApplicationTest { частный окончательный ApplicationContextRunner contextRunner = новый ApplicationContextRunner (); @BeforeEach недействительный setUp() { TimeZone.setDefault(ноль); // Очищаем часовой пояс по умолчанию } @AfterEach недействительный TearDown () { TimeZone.setDefault(ноль); // Сбрасываем часовой пояс по умолчанию после тестов } @Тест void WhenApplicationStarts_thenTimeZoneIsSetToNewYork () { // Договариваться Ожидаемые часыClock = Clock.system(ZoneId.of("Америка/Нью_Йорк")); SpringApplicationBuilder jackApplicationBuilder = макет (SpringApplicationBuilder.class); когда (mockApplicationBuilder.sources(BatchApplication.class)).thenReturn(mockApplicationBuilder); // Действовать this.contextRunner.withUserConfiguration(BatchApplication.class) .run(контекст -> { // Утверждать Приложение BatchApplication = context.getBean(BatchApplication.class); Часы часы = app.getClock(); AssertEquals(expectedClock.getZone(), clock.getZone()); AssertEquals(TimeZone.getDefault().getID(), "Америка/Нью_Йорк"); }); } } Таслет спроектирован так, чтобы быть модульным и допускающим многократное использование, поскольку он будет частью нескольких пакетных заданий с одинаковыми требованиями к проверке файлов. Я использую аннотацию @Value Spring для внедрения путей к файлам из конфигурации приложения, что обеспечивает гибкость в различных средах (разработка, промежуточное хранение, производство).
Я столкнулся с трудностями при правильной обработке исключений. Когда создается исключение, я хочу убедиться, что оно зарегистрировано с достаточной подробностью и что статус завершения пакетного задания установлен так, чтобы указывать на сбой, запуская соответствующие последующие процессы в нашей настройке оркестрации заданий.
Кроме того, я ищу рекомендации по управлению ресурсами в тасклете, особенно по освобождению дескрипторов файлов и обеспечению правильного закрытия файловых потоков в случае ошибки.
Может ли кто-нибудь просмотреть мой подход к обработке исключений и управлению ресурсами? Мы будем очень признательны за любые идеи по повышению надежности и удобства сопровождения этого кода.
-
- Похожие темы
- Ответы
- Просмотры
- Последнее сообщение
-
-
Spring Batch Tasklet для проверки файлов — требуется обработка исключений
Anonymous » » в форуме JAVA - 0 Ответы
- 32 Просмотры
-
Последнее сообщение Anonymous
-
-
-
Spring Batch Tasklet для проверки файлов — требуется обработка исключений
Anonymous » » в форуме Python - 0 Ответы
- 36 Просмотры
-
Последнее сообщение Anonymous
-
-
-
Spring Batch Tasklet для проверки файлов — требуется обработка исключений
Anonymous » » в форуме Python - 0 Ответы
- 26 Просмотры
-
Последнее сообщение Anonymous
-
-
-
Spring Batch Tasklet для проверки файлов – требуется обработка исключений
Anonymous » » в форуме Python - 0 Ответы
- 31 Просмотры
-
Последнее сообщение Anonymous
-
-
-
Spring Batch Tasklet для проверки файлов — требуется обработка исключений
Anonymous » » в форуме Python - 0 Ответы
- 17 Просмотры
-
Последнее сообщение Anonymous
-