Есть ли способ освободить память JVM в @AfterChunks в весенней партии? - PullRequest
0 голосов
/ 09 марта 2020

Есть ли способ освободить память JVM в @AfterChunks? Потому что мы получаем ошибку outOfMemory после обработки нескольких записей.

Есть ли способ освободить память после завершения весеннего пакетного задания?

    Public class ABC implements ChunkListener{

    private static final Logger log = oggerFactory.getLogger(ABC .class);
    private MessageFormat fmt = new MessageFormat("{0} items processed");

    private int loggingInterval = 100;

    @Override
    public void beforeChunk(ChunkContext context) {
        // Nothing to do here
    }

    @Override
    public void afterChunk(ChunkContext context) {

        int count = context.getStepContext().getStepExecution().getReadCount();

        // If the number of records processed so far is a multiple of the logging interval then output a log message.           
        if (count > 0 && count % loggingInterval == 0) {
            log.info( fmt.format(new Object[] {new Integer(count) })) ;
        }
        //String name = context.getStepContext().getStepName();
        //context.getStepContext().registerDestructionCallback(name, callback);

    }

Как вызвать registerDestructionCallback для очистки? Что такое имя и обратный звонок? Любая ссылка?

1 Ответ

0 голосов
/ 10 марта 2020

Нет способа заставить G C в Java (System.gc() - это просто подсказка JVM), и вы должны оставить это для G C.

Элементы на шаге, ориентированном на порцию, должны собираться после сборки каждого порции, см. Освобождает ли Spring Batch память кучи после обработки каждого пакета? . Если у вас есть OOM, убедитесь, что:

  • ваши элементы не хранятся в процессоре, картографе и т. Д. c
  • кусок может поместиться в памяти: иногда, используя шаблон запроса управления , процессор извлекает больше информации о каждом элементе, и вы можете очень быстро освободить память для первых нескольких элементов
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...