@NotNull public JDBCStatement createWriter() { return in.acquireAppender() .methodWriterBuilder(JDBCStatement.class) .recordHistory(true) .get(); }
@Before public void before() { dataDir = DirectoryUtils.tempDir(ChronicleReaderTest.class.getSimpleName()).toPath(); try (final ChronicleQueue queue = SingleChronicleQueueBuilder.binary(dataDir) .testBlockSize().build()) { final ExcerptAppender excerptAppender = queue.acquireAppender(); final MethodWriterBuilder<StringEvents> methodWriterBuilder = excerptAppender.methodWriterBuilder(StringEvents.class); methodWriterBuilder.recordHistory(true); final StringEvents events = methodWriterBuilder.build(); for (int i = 0; i < 24; i++) { events.say(i % 2 == 0 ? "hello" : "goodbye"); } } }
.methodWriterBuilder(OrderIdeaListener.class) .addInterface(MarketDataListener.class) .recordHistory(true) .get(); SidedMarketDataCombiner combiner = new SidedMarketDataCombiner((MarketDataListener) orderManager); .methodWriterBuilder(OrderListener.class) .recordHistory(true) .get();
private void generateTestData(final ChronicleQueue inputQueue, final ChronicleQueue outputQueue) { final First first = inputQueue.acquireAppender(). methodWriterBuilder(First.class).recordHistory(true).build(); first.say("one"); first.say("two"); first.say("three"); final LoggingFirst loggingFirst = new LoggingFirst(outputQueue.acquireAppender(). methodWriterBuilder(Second.class).build()); final MethodReader reader = inputQueue.createTailer(). methodReaderBuilder().build(loggingFirst); assertThat(reader.readOne(), is(true)); assertThat(reader.readOne(), is(true)); // roll queue file clock.addAndGet(TimeUnit.DAYS.toMillis(2)); assertThat(reader.readOne(), is(true)); assertThat(reader.readOne(), is(false)); }
public EventLoopServiceWrapper(@NotNull ServiceWrapperBuilder<O> builder) { this.priority = builder.priority(); outputQueue = ChronicleQueue.singleBuilder(builder.outputPath()) .sourceId(builder.outputSourceId()) .checkInterrupts(false) .build(); serviceOut = outputQueue.acquireAppender() .methodWriterBuilder(builder.outClass()) .recordHistory(builder.outputSourceId() != 0) .get(); serviceImpl = builder.getServiceFunctions().stream() .map(f -> f.apply(serviceOut)) .toArray(); List<String> paths = builder.inputPath(); serviceIn = new MethodReader[paths.size()]; inputQueues = new ChronicleQueue[paths.size()]; for (int i = 0; i < paths.size(); i++) { inputQueues[i] = ChronicleQueue.singleBuilder(paths.get(i)) .sourceId(builder.inputSourceId()) .build(); serviceIn[i] = inputQueues[i].createTailer() .afterLastWritten(outputQueue) .methodReader(serviceImpl); } eventLoop = builder.eventLoop(); eventLoop.addHandler(this); createdEventLoop = builder.createdEventLoop(); if (createdEventLoop) eventLoop.start(); }
final ExcerptAppender excerptAppender = queue.acquireAppender(); final MethodWriterBuilder<StringEvents> methodWriterBuilder = excerptAppender.methodWriterBuilder(StringEvents.class); methodWriterBuilder.recordHistory(true); final StringEvents events = methodWriterBuilder.build();
void runLoop() { try { JDBCResult result = out.acquireAppender() .methodWriterBuilder(JDBCResult.class) .recordHistory(true) .get(); JDBCComponent js = new JDBCComponent(connectionSupplier, result); MethodReader reader = in.createTailer().afterLastWritten(out).methodReader(js); Pauser pauser = Pauser.millis(1, 10); while (!closed) { if (reader.readOne()) pauser.reset(); else pauser.pause(); } } catch (Throwable t) { LOGGER.warn("Run loop exited", t); } }
@Test(timeout = 10_000L) public void shouldReadQueueWithNonDefaultRollCycleWhenMetadataDeleted() throws IOException { if (OS.isWindows()) return; Path path = DirectoryUtils.tempDir("shouldReadQueueWithNonDefaultRollCycle").toPath(); path.toFile().mkdirs(); try (final ChronicleQueue queue = SingleChronicleQueueBuilder.binary(path).rollCycle(RollCycles.MINUTELY). testBlockSize().build()) { final ExcerptAppender excerptAppender = queue.acquireAppender(); final MethodWriterBuilder<StringEvents> methodWriterBuilder = excerptAppender.methodWriterBuilder(StringEvents.class); methodWriterBuilder.recordHistory(true); final StringEvents events = methodWriterBuilder.build(); for (int i = 0; i < 24; i++) { events.say(i % 2 == 0 ? "hello" : "goodbye"); } } Files.list(path).filter(f -> f.getFileName().toString().endsWith(SingleTableStore.SUFFIX)).findFirst().ifPresent(p -> p.toFile().delete()); waitForGcCycle(); new ChronicleReader().withBasePath(path).withMessageSink(capturedOutput::add).execute(); assertFalse(capturedOutput.isEmpty()); }
.methodWriterBuilder(DummyListener.class) .recordHistory(recordHistoryFirst) .get(); writer.say("hello"); .methodWriterBuilder(DummyListener.class) .recordHistory(true) .get(); DummyListener dummy = msg -> { MessageHistory history = MessageHistory.get(); .methodWriterBuilder(DummyListener.class) .recordHistory(true) .get(); DummyListener dummy = msg -> { MessageHistory history = MessageHistory.get();
public static void main(String[] args) { SingleChronicleQueue outQueue = SingleChronicleQueueBuilder.binary("target/" + "monitor") .rollCycle(RollCycles.TEST_SECONDLY).build(); ExcerptAppender outQueueAppender = outQueue.acquireAppender(); HeartbeatListener heartbeatWriter = outQueueAppender.methodWriterBuilder(HeartbeatListener.class).methodWriterListener((m, a) -> validateAll(a)).recordHistory(true).build(); Monitor.addPeriodicUpdateSource(10, () -> currentTimeMillis -> { outQueueAppender.pretouch(); }); long lastHB = 0; while (true) { if (System.currentTimeMillis() - lastHB > 1) { // write a hb to the queue MessageHistory.get().reset(); Heartbeat heartBeat = new Heartbeat(UUID.randomUUID().toString()); heartbeatWriter.heartbeat(heartBeat); lastHB = System.currentTimeMillis(); } } }
methodWriterBuilder(StringEvents.class).recordHistory(true).get();
@Test(timeout = 10_000L) public void shouldReadQueueWithNonDefaultRollCycle() { if (OS.isWindows()) return; Path path = DirectoryUtils.tempDir("shouldReadQueueWithNonDefaultRollCycle").toPath(); path.toFile().mkdirs(); try (final ChronicleQueue queue = SingleChronicleQueueBuilder.binary(path).rollCycle(RollCycles.MINUTELY). testBlockSize().build()) { final ExcerptAppender excerptAppender = queue.acquireAppender(); final MethodWriterBuilder<StringEvents> methodWriterBuilder = excerptAppender.methodWriterBuilder(StringEvents.class); methodWriterBuilder.recordHistory(true); final StringEvents events = methodWriterBuilder.build(); for (int i = 0; i < 24; i++) { events.say(i % 2 == 0 ? "hello" : "goodbye"); } } new ChronicleReader().withBasePath(path).withMessageSink(capturedOutput::add).execute(); assertFalse(capturedOutput.isEmpty()); }
default T build() { return get(); } }
@NotNull public JDBCStatement createWriter() { return in.acquireAppender() .methodWriterBuilder(JDBCStatement.class) .recordHistory(true) .get(); }