31 lines
851 B
Markdown
31 lines
851 B
Markdown
# FileQueue
|
|
Store messages on a disk queue in a fast producer, slow consumer scenario.
|
|
|
|
```java
|
|
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);
|
|
}
|
|
}
|
|
``` |