|
56 | 56 | */
|
57 | 57 | public class WatchFlow {
|
58 | 58 |
|
59 |
| - private static final Logger LOG = LoggerFactory.getLogger(SyncFlow.class); |
| 59 | + private static final Logger LOG = LoggerFactory.getLogger(WatchFlow.class); |
60 | 60 | private static final Logger UPDATE_EVENT_LOG = LoggerFactory.getLogger(LOGGING_UPDATE_EVENT_ASYNC);
|
61 | 61 | private static final Map<ServiceKey, Set<ServiceListener>> watchers = new ConcurrentHashMap<>();
|
62 | 62 | private final AtomicBoolean initialize = new AtomicBoolean(false);
|
@@ -90,7 +90,13 @@ public WatchServiceResponse commonWatchService(CommonWatchServiceRequest request
|
90 | 90 | .addInstances(Arrays.asList(response.getInstances()))
|
91 | 91 | .allInstances(Arrays.asList(response.getInstances())).build();
|
92 | 92 | firstAddedListeners.forEach(
|
93 |
| - serviceListener -> executor.execute(event.getServiceKey(), () -> serviceListener.onEvent(event))); |
| 93 | + serviceListener -> executor.execute(event.getServiceKey(), () -> { |
| 94 | + try { |
| 95 | + serviceListener.onEvent(event); |
| 96 | + } catch (Throwable e) { |
| 97 | + LOG.error("Notify error When listener is first added, service key:{}, event:{}", event.getServiceKey(), event, e); |
| 98 | + } |
| 99 | + })); |
94 | 100 | }
|
95 | 101 | boolean result = existListeners.addAll(addListeners);
|
96 | 102 | return new WatchServiceResponse(response, result);
|
@@ -168,7 +174,11 @@ private class InstanceChangeListener extends AbstractResourceEventListener {
|
168 | 174 |
|
169 | 175 | private final BiConsumer<ServiceChangeEvent, ServiceListener> consumer = (event, listener) -> {
|
170 | 176 | WatchFlow.this.executor.execute(event.getServiceKey(), () -> {
|
171 |
| - listener.onEvent(event); |
| 177 | + try { |
| 178 | + listener.onEvent(event); |
| 179 | + } catch (Throwable e) { |
| 180 | + LOG.error("Notify error, service key:{}, event:{}", event.getServiceKey(), event, e); |
| 181 | + } |
172 | 182 | });
|
173 | 183 | };
|
174 | 184 |
|
|
0 commit comments