Мы создаем сервис обработки файлов с использованием весенней загрузки. Мы получаем XML файл как Clob из БД и преобразуем его в String (затем мы обработаем Unmarshall String в JAXBElement для обработки).
Поскольку это служба обработки файлов, наша конструкция для этой службы будет работать как Задача PCF. приложение, так что когда приложение завершит обработку файла, оно завершит работу и освободит облачный ресурс (RAM, Disk).
Когда мы обрабатываем небольшие файлы (до 60 МБ) с помощью приложения задачи PCF, у нас нет проблем. Но когда мы пытаемся обработать файл размером 150 МБ, экземпляр приложения Task завершается без какого-либо журнала ошибок.
Мы развернули то же приложение, что и экземпляр веб-приложения PCF, и использовали REST API для обработки файла. Затем мы можем обработать файл.
Конфигурация приложения задачи:
Мы начали с 1 ГБ оперативной памяти и 1 ГБ дискового пространства для экземпляра задачи и увеличенной оперативной памяти. до 5 ГБ и 2 ГБ дискового пространства все еще Приложение не может обработать файл.
Конфигурация веб-приложения:
С 2 ГБ ОЗУ и 1 ГБ на диске. С помощью REST API для начала обработки файла мы можем обработать файл.
Почему это различие?
Фрагмент кода:
if (clob != null) {
BufferedReader reader = new BufferedReader(new InputStreamReader(clob.getAsciiStream()));
String read = null;
StringBuffer sb = new StringBuffer();
LOGGER.info("Before While Loop");
while ((read = reader.readLine()) != null) {
sb.append(read);
}
LOGGER.info("After While Loop");
String xml = sb.toString();
}
Журнал задач ПКФ:
2020-04-02T15:54:19.787+05:30 [APP/TASK/Bulk File/0] [OUT] 2020-04-02 10:24:19.786 INFO 15 --- [ main] c.f.g.s.s.impl.ServiceImpl : Before While Loop
2020-04-02T15:54:29.180+05:30 [APP/TASK/Bulk File/0] [OUT] 2020-04-02 10:24:29.180 INFO 15 --- [ main] com.zaxxer.hikari.HikariDataSource : HikariPool-1 - Shutdown initiated...
2020-04-02T15:54:29.220+05:30 [APP/TASK/Bulk File/0] [OUT] 2020-04-02 10:24:29.220 INFO 15 --- [ main] com.zaxxer.hikari.HikariDataSource : HikariPool-1 - Shutdown completed.
2020-04-02T15:54:29.490+05:30 [APP/TASK/Bulk File/0] [OUT] Exit status 1
2020-04-02T15:54:29.630+05:30 [CELL/0] [OUT] Cell 17fd36a9-3f6b-4957-89b5-83639048dadf stopping instance 204e6fc5-6998-47d3-89dc-59ac702caccd
2020-04-02T15:54:29.630+05:30 [CELL/0] [OUT] Cell 17fd36a9-3f6b-4957-89b5-83639048dadf destroying container for instance 204e6fc5-6998-47d3-89dc-59ac702caccd