6 |
|
|
7 |
public abstract class AsyncNotifier implements Notifier { |
public abstract class AsyncNotifier implements Notifier { |
8 |
|
|
|
CircuitBreaker cb; |
|
|
|
|
|
public AsyncNotifier(CircuitBreaker cb) { |
|
|
this.cb = cb; |
|
|
} |
|
9 |
|
|
10 |
public final void sendNotification(String breakerName, Event evnt) { |
public final void sendNotification(CircuitBreaker breaker, Event evnt) { |
11 |
ExecutorService exec = cb.getExecutor(); |
ExecutorService exec = breaker.getExecutor(); |
12 |
|
|
13 |
exec.submit( new AsyncRunnable(breakerName, evnt) ); |
exec.submit( new AsyncRunnable(breaker, evnt) ); |
14 |
} |
} |
15 |
|
|
16 |
public abstract void sendAsync(String breakerName, Event evnt); |
public abstract void sendAsync(CircuitBreaker breaker, Event evnt); |
17 |
|
|
18 |
public class AsyncRunnable implements Runnable { |
public class AsyncRunnable implements Runnable { |
19 |
String breakerName; |
CircuitBreaker breaker; |
20 |
Event evnt; |
Event evnt; |
21 |
|
|
22 |
public AsyncRunnable(String breakerName, Event evnt) { |
public AsyncRunnable(CircuitBreaker breaker, Event evnt) { |
23 |
this.breakerName = breakerName; |
this.breaker = breaker; |
24 |
this.evnt = evnt; |
this.evnt = evnt; |
25 |
} |
} |
26 |
|
|
27 |
|
|
28 |
public void run() { |
public void run() { |
29 |
sendAsync(breakerName, evnt); |
sendAsync(breaker, evnt); |
30 |
} |
} |
31 |
|
|
32 |
|
|