Как создать очередь хроник с почасовыми файлами непрерывного хранилища (cq4)

Привет, я новичок в Chronicle Queue. У меня есть некоторые сомнения.

  1. Я хочу создать очередь ChronicleQueue с почасовыми файлами хранилища. Как мне ее создать. Я создаю писателя следующим образом,

    ChronicleQueue queue = ChronicleQueueBuilder.single(chroniclePath).build();
    ExcerptAppender appender = queue.acquireAppender();
    
  2. Также я хочу удалить файлы после того, как потребитель завершит чтение, могу ли я создать для них средство записи следующим образом:

    ChronicleQueue queue = ChronicleQueueBuilder.single(chroniclePath).storeFileListener(new StoreFileListener() {
    
            @Override
            public void onReleased(int cycle, File file) {
    
                if (file != null) {
                    try {
                        file.delete();
                    } catch (Exception e) {
                        //log
                    }
                }
            }
        }).build();
    

Я хочу знать, правильно ли я поступаю в этом случае.

  1. Нужно ли хранить номер цикла еще и в ридере для чтения после перезапуска. В настоящее время я храню индекс только.


person Krishas    schedule 26.04.2017    source источник


Ответы (1)


Вы можете установить цикл рулона в конструкторе

ChronicleQueue queue = ChronicleQueueBuilder.single(chroniclePath)
                                            .rollCycle(RollCycles.HOURLY)
                                            .build();
ExcerptAppender appender = queue.acquireAppender();

Слушатель можно использовать для удаления старых файлов.

Как правило, вам нужно только сохранить индекс для чтения (цикл является частью индекса)

person Peter Lawrey    schedule 26.04.2017