/** * Start collect events for Visor instance. * * @param ignite Grid. * @param visorKey unique Visor instance key. */ public void startCollect(IgniteEx ignite, String visorKey) { synchronized (listenVisor) { if (cleanupStopped) { scheduleCleanupJob(ignite); cleanupStopped = false; } listenVisor.put(visorKey, Boolean.TRUE); ignite.events().enableLocal(VISOR_TASK_EVTS); } }
/** * Add event listener to passed Ignite instances for cache event types. * * @param igns Ignite instances. */ private void registerEventListeners(Ignite... igns) { if (igns != null) { for (Ignite ign : igns) { ign.events().enableLocal(CACHE_EVENT_TYPES); ign.events().localListen((IgnitePredicate<Event>)event -> { CacheEvent cacheEvt = (CacheEvent)event; if (!TX_LABEL.equals(cacheEvt.txLabel())) { log.error("Has been received event with incorrect label " + cacheEvt.txLabel() + " ," + " expected " + TX_LABEL + " label"); wrongEvts.add(cacheEvt); } return true; }, CACHE_EVENT_TYPES); } } }
/** * @throws Exception If failed. */ @Test public void testEnableWithDefaults() throws Exception { inclEvtTypes = null; try { Ignite g = startGrid(); final AtomicInteger cnt = new AtomicInteger(); g.events().localListen(new IgnitePredicate<Event>() { @Override public boolean apply(Event evt) { cnt.incrementAndGet(); return true; } }, EVT_TASK_STARTED); g.compute().run(F.noop()); assertEquals(0, cnt.get()); g.events().enableLocal(EVT_TASK_STARTED); g.compute().run(F.noop()); assertEquals(1, cnt.get()); } finally { stopAllGrids(); } }
/** * @throws Exception If failed. */ @Test public void testEnableWithIncludes() throws Exception { inclEvtTypes = new int[] { EVT_TASK_STARTED, EVT_TASK_FINISHED }; try { Ignite g = startGrid(); final AtomicInteger cnt = new AtomicInteger(); g.events().localListen(new IgnitePredicate<Event>() { @Override public boolean apply(Event evt) { cnt.incrementAndGet(); return true; } }, EVT_TASK_STARTED, EVT_TASK_FINISHED, EVT_JOB_STARTED); g.compute().run(F.noop()); assertEquals(2, cnt.get()); g.events().enableLocal(EVT_TASK_FINISHED, EVT_JOB_STARTED); g.compute().run(F.noop()); assertEquals(5, cnt.get()); } finally { stopAllGrids(); } }
/** * @throws Exception If failed. */ @Test public void testEnableDisable() throws Exception { inclEvtTypes = null; try { Ignite g = startGrid(); IgniteEvents evts = g.events(); evts.enableLocal(EVT_CACHE_OBJECT_PUT); evts.disableLocal(EVT_CACHE_OBJECT_PUT); for (int evtType : evts.enabledEvents()) assertFalse(evtType == EVT_CACHE_OBJECT_PUT); } finally { stopAllGrids(); } }
/** * @throws Exception If failed. */ @Test public void testReconnect() throws Exception { Ignite srv = startGrid("server"); IgniteEvents evts = srv.events(); evts.enableLocal(EventType.EVTS_DISCOVERY_ALL); evts.localListen(new IgnitePredicate<Event>() { @Override public boolean apply(Event evt) { ClusterNode node = ((DiscoveryEvent)evt).eventNode(); rejoinAttr = node.attribute("test"); return true; } }, EventType.EVT_NODE_JOINED); Ignite client = startGrid("client"); reconnectClientNode(log, client, srv, null); assertEquals("2", rejoinAttr); } }
/** {@inheritDoc} */ @Override public long processInStreamOutLong(int type, BinaryRawReaderEx reader) throws IgniteCheckedException { switch (type) { case OP_RECORD_LOCAL: // TODO: IGNITE-1410. return TRUE; case OP_ENABLE_LOCAL: events.enableLocal(readEventTypes(reader)); return TRUE; case OP_DISABLE_LOCAL: events.disableLocal(readEventTypes(reader)); return TRUE; case OP_STOP_REMOTE_LISTEN: events.stopRemoteListen(reader.readUuid()); return TRUE; case OP_LOCAL_LISTEN: events.localListen(localFilter(reader.readLong()), reader.readInt()); return TRUE; case OP_REMOTE_QUERY_ASYNC: readAndListenFuture(reader, startRemoteQueryAsync(reader, events), eventColResWriter); return TRUE; case OP_WAIT_FOR_LOCAL_ASYNC: { readAndListenFuture(reader, startWaitForLocalAsync(reader, events), eventResWriter); return TRUE; } default: return super.processInStreamOutLong(type, reader); } }
/** * @throws Exception If failed. */ @Test public void testDisableWithIncludes() throws Exception { inclEvtTypes = null; try { Ignite g = startGrid(); g.events().enableLocal(EVT_TASK_STARTED, EVT_TASK_FINISHED, EVT_JOB_STARTED); final AtomicInteger cnt = new AtomicInteger(); g.events().localListen(new IgnitePredicate<Event>() { @Override public boolean apply(Event evt) { cnt.incrementAndGet(); return true; } }, EVT_TASK_STARTED, EVT_TASK_FINISHED, EVT_JOB_STARTED); g.compute().run(F.noop()); assertEquals(3, cnt.get()); g.events().disableLocal(EVT_TASK_STARTED, EVT_TASK_FINISHED, EVT_JOB_FAILED); g.compute().run(F.noop()); assertEquals(4, cnt.get()); } finally { stopAllGrids(); } }
assertEqualsWithoutOrder(inclEvtTypes, getEnabledEvents(1013, g, 30000)); g.events().enableLocal(20000, EVT_TASK_STARTED, EVT_CACHE_ENTRY_CREATED); g.events().enableLocal(Arrays.copyOf(a, 1002));
/** * Start collect events for Visor instance. * * @param ignite Grid. * @param visorKey unique Visor instance key. */ public void startCollect(IgniteEx ignite, String visorKey) { synchronized (listenVisor) { if (cleanupStopped) { scheduleCleanupJob(ignite); cleanupStopped = false; } listenVisor.put(visorKey, Boolean.TRUE); ignite.events().enableLocal(VISOR_TASK_EVTS); } }
/** {@inheritDoc} */ @Override public long processInStreamOutLong(int type, BinaryRawReaderEx reader) throws IgniteCheckedException { switch (type) { case OP_RECORD_LOCAL: // TODO: IGNITE-1410. return TRUE; case OP_ENABLE_LOCAL: events.enableLocal(readEventTypes(reader)); return TRUE; case OP_DISABLE_LOCAL: events.disableLocal(readEventTypes(reader)); return TRUE; case OP_STOP_REMOTE_LISTEN: events.stopRemoteListen(reader.readUuid()); return TRUE; case OP_LOCAL_LISTEN: events.localListen(localFilter(reader.readLong()), reader.readInt()); return TRUE; case OP_REMOTE_QUERY_ASYNC: readAndListenFuture(reader, startRemoteQueryAsync(reader, events), eventColResWriter); return TRUE; case OP_WAIT_FOR_LOCAL_ASYNC: { readAndListenFuture(reader, startWaitForLocalAsync(reader, events), eventResWriter); return TRUE; } default: return super.processInStreamOutLong(type, reader); } }