filequeue/README.md

851 B

FileQueue

Store messages on a disk queue in a fast producer, slow consumer scenario.

var tmpFile = Paths.get("temp.queue.bin");
try (var queue = new it.cavallium.filequeue.DiskQueueToConsumer<String>(tmpFile, new Serializer<String>() {
  @Override
  public byte[] serialize(String data) throws IOException {
    return data.getBytes(StandardCharsets.US_ASCII);
  }
}, new Deserializer<String>() {
  @Override
  public String deserialize(byte[] data) throws IOException {
    return new String(data, StandardCharsets.US_ASCII);
  }
}, text -> {
  System.out.println("Received: %s", text);
  
  // Return true if the message has been consumed, false to retry later
  return true;
})) {
  queue.startQueue();
    
  final var text = "test-message";
	
  while (true) {
    System.out.println("Emitted: %s", text);
    queue.add(text);
  }
}