1 package io.getunleash.event;
2
3 import io.getunleash.util.UnleashConfig;
4 import io.getunleash.util.UnleashScheduledExecutor;
5
6 public class EventDispatcher {
7
8 private final UnleashSubscriber unleashSubscriber;
9 private final UnleashScheduledExecutor unleashScheduledExecutor;
10
11 public EventDispatcher(UnleashConfig unleashConfig) {
12 this.unleashSubscriber = unleashConfig.getSubscriber();
13 this.unleashScheduledExecutor = unleashConfig.getScheduledExecutor();
14 }
15
16 public void dispatch(UnleashEvent unleashEvent) {
17 unleashScheduledExecutor.scheduleOnce(
18 () -> {
19 unleashSubscriber.on(unleashEvent);
20 unleashEvent.publishTo(unleashSubscriber);
21 });
22 }
23 }
24