pl.allegro.tech.hermes.consumers.supervisor.process.RunningConsumerProcesses Maven / Gradle / Ivy
Go to download
Show more of this group Show more artifacts with this name
Show all versions of hermes-consumers Show documentation
Show all versions of hermes-consumers Show documentation
Fast and reliable message broker built on top of Kafka.
package pl.allegro.tech.hermes.consumers.supervisor.process;
import pl.allegro.tech.hermes.api.SubscriptionName;
import java.util.HashMap;
import java.util.Map;
import java.util.Set;
import java.util.concurrent.Future;
import java.util.stream.Stream;
class RunningConsumerProcesses {
private final Map processes = new HashMap<>();
void add(ConsumerProcess process, Future executionHandle) {
this.processes.put(process.getSubscriptionName(), new RunningProcess(process, executionHandle));
}
void remove(SubscriptionName subscriptionName) {
processes.remove(subscriptionName);
}
void remove(ConsumerProcess process) {
processes.remove(process.getSubscriptionName());
}
Future getExecutionHandle(SubscriptionName subscriptionName) {
return processes.get(subscriptionName).executionHandle;
}
ConsumerProcess getProcess(SubscriptionName subscriptionName) {
return processes.get(subscriptionName).process;
}
boolean hasProcess(SubscriptionName subscriptionName) {
return processes.containsKey(subscriptionName);
}
Stream stream() {
return processes.values().stream().map(p -> p.process);
}
Set existingConsumers() {
return processes.keySet();
}
private static class RunningProcess {
ConsumerProcess process;
Future executionHandle;
public RunningProcess(ConsumerProcess process, Future executionHandle) {
this.process = process;
this.executionHandle = executionHandle;
}
}
}
© 2015 - 2025 Weber Informatics LLC | Privacy Policy