use of org.apache.ignite.events.TaskEvent in project ignite by apache.
the class EventsExample method localListen.
/**
* Listen to events that happen only on local node.
*
* @throws IgniteException If failed.
*/
private static void localListen() throws IgniteException {
System.out.println();
System.out.println(">>> Local event listener example.");
Ignite ignite = Ignition.ignite();
IgnitePredicate<TaskEvent> lsnr = evt -> {
System.out.println("Received task event [evt=" + evt.name() + ", taskName=" + evt.taskName() + ']');
return true;
};
// Register event listener for all local task execution events.
ignite.events().localListen(lsnr, EVTS_TASK_EXECUTION);
// Generate task events.
ignite.compute().withName("example-event-task").run(() -> System.out.println("Executing sample job."));
// Unsubscribe local task event listener.
ignite.events().stopLocalListen(lsnr);
}
use of org.apache.ignite.events.TaskEvent in project ignite by apache.
the class EventsExample method remoteListen.
/**
* Listen to events coming from all cluster nodes.
*
* @throws IgniteException If failed.
*/
private static void remoteListen() throws IgniteException {
System.out.println();
System.out.println(">>> Remote event listener example.");
// This optional local callback is called for each event notification
// that passed remote predicate listener.
IgniteBiPredicate<UUID, TaskEvent> locLsnr = (nodeId, evt) -> {
// Remote filter only accepts tasks whose name being with "good-task" prefix.
assert evt.taskName().startsWith("good-task");
System.out.println("Received task event [evt=" + evt.name() + ", taskName=" + evt.taskName());
// Return true to continue listening.
return true;
};
// Remote filter which only accepts tasks whose name begins with "good-task" prefix.
IgnitePredicate<TaskEvent> rmtLsnr = evt -> evt.taskName().startsWith("good-task");
Ignite ignite = Ignition.ignite();
// Register event listeners on all nodes to listen for task events.
ignite.events().remoteListen(locLsnr, rmtLsnr, EVTS_TASK_EXECUTION);
// Generate task events.
for (int i = 0; i < 10; i++) {
ignite.compute().withName(i < 5 ? "good-task-" + i : "bad-task-" + i).run(new IgniteRunnable() {
// Auto-inject task session.
@TaskSessionResource
private ComputeTaskSession ses;
@Override
public void run() {
System.out.println("Executing sample job for task: " + ses.getTaskName());
}
});
}
}
use of org.apache.ignite.events.TaskEvent in project ignite by apache.
the class TaskEventSubjectIdSelfTest method testFailedTask.
/**
* @throws Exception If failed.
*/
public void testFailedTask() throws Exception {
latch = new CountDownLatch(2);
GridTestUtils.assertThrows(log, new Callable<Object>() {
@Override
public Object call() throws Exception {
grid().compute().execute(new FailedTask(), null);
return null;
}
}, IgniteCheckedException.class, null);
assert latch.await(1000, MILLISECONDS);
assertEquals(2, evts.size());
Iterator<TaskEvent> it = evts.iterator();
assert it.hasNext();
TaskEvent evt = it.next();
assert evt != null;
assertEquals(EVT_TASK_STARTED, evt.type());
assertEquals(nodeId, evt.subjectId());
assert it.hasNext();
evt = it.next();
assert evt != null;
assertEquals(EVT_TASK_FAILED, evt.type());
assertEquals(nodeId, evt.subjectId());
assert !it.hasNext();
}
use of org.apache.ignite.events.TaskEvent in project ignite by apache.
the class TaskEventSubjectIdSelfTest method testClient.
/**
* @throws Exception If failed.
*/
public void testClient() throws Exception {
latch = new CountDownLatch(3);
client.compute().execute(SimpleTask.class.getName(), null);
assert latch.await(1000, MILLISECONDS);
assertEquals(3, evts.size());
Iterator<TaskEvent> it = evts.iterator();
assert it.hasNext();
TaskEvent evt = it.next();
assert evt != null;
assertEquals(EVT_TASK_STARTED, evt.type());
assertEquals(client.id(), evt.subjectId());
assert it.hasNext();
evt = it.next();
assert evt != null;
assertEquals(EVT_TASK_REDUCED, evt.type());
assertEquals(client.id(), evt.subjectId());
assert it.hasNext();
evt = it.next();
assert evt != null;
assertEquals(EVT_TASK_FINISHED, evt.type());
assertEquals(client.id(), evt.subjectId());
assert !it.hasNext();
}
use of org.apache.ignite.events.TaskEvent in project ignite by apache.
the class TaskEventSubjectIdSelfTest method testTimedOutTask.
/**
* @throws Exception If failed.
*/
public void testTimedOutTask() throws Exception {
latch = new CountDownLatch(2);
GridTestUtils.assertThrows(log, new Callable<Object>() {
@Override
public Object call() throws Exception {
grid().compute().withTimeout(100).execute(new TimedOutTask(), null);
return null;
}
}, ComputeTaskTimeoutException.class, null);
assert latch.await(1000, MILLISECONDS);
assertEquals(3, evts.size());
Iterator<TaskEvent> it = evts.iterator();
assert it.hasNext();
TaskEvent evt = it.next();
assert evt != null;
assertEquals(EVT_TASK_STARTED, evt.type());
assertEquals(nodeId, evt.subjectId());
assert it.hasNext();
evt = it.next();
assert evt != null;
assertEquals(EVT_TASK_TIMEDOUT, evt.type());
assertEquals(nodeId, evt.subjectId());
assert it.hasNext();
evt = it.next();
assert evt != null;
assertEquals(EVT_TASK_FAILED, evt.type());
assertEquals(nodeId, evt.subjectId());
assert !it.hasNext();
}
Aggregations