/** {@inheritDoc} */ @Override protected ResultT run(VisorIdleVerifyTaskArg arg) throws IgniteException { if (fut == null) { fut = ignite.compute().executeAsync(taskCls, arg); if (!fut.isDone()) { jobCtx.holdcc(); fut.listen((IgniteInClosure<IgniteFuture<ResultT>>)f -> jobCtx.callcc()); return null; } } return fut.get(); }
/** {@inheritDoc} */ @Override protected VisorIdleVerifyTaskResult run(VisorIdleVerifyTaskArg arg) throws IgniteException { if (fut == null) { fut = ignite.compute().executeAsync(VerifyBackupPartitionsTask.class, arg.getCaches()); if (!fut.isDone()) { jobCtx.holdcc(); fut.listen(new IgniteInClosure<IgniteFuture<Map<PartitionKey, List<PartitionHashRecord>>>>() { @Override public void apply(IgniteFuture<Map<PartitionKey, List<PartitionHashRecord>>> f) { jobCtx.callcc(); } }); return null; } } return new VisorIdleVerifyTaskResult(fut.get()); }
assert fut.isDone();
/** * Finds completed tasks in the queue and removes them. */ private void checkCompletion() { for (Iterator<ComputeTaskFuture<Integer>> iter = futures.iterator(); iter.hasNext();) { ComputeTaskFuture<Integer> fut = iter.next(); if (fut.isDone()) { try { Integer res = fut.get(); assert res == params.getJobsCount() : "Task returned wrong result [taskIs=" + fut.getTaskSession().getId() + ", result=" + res + "]"; ignite.log().info(">>> Task completed successfully. Task id: " + fut.getTaskSession().getId()); } catch (IgniteFutureCancelledException ignored) { ignite.log().info(">>> Task cancelled: " + fut.getTaskSession().getId()); } catch (IgniteException e) { ignite.log().warning( ">>> Get operation for completed task failed: " + fut.getTaskSession().getId(), e); } finally { iter.remove(); } } } }
assert fut.isDone();
/** {@inheritDoc} */ @Override protected IdleVerifyResultV2 run(VisorIdleVerifyTaskArg arg) throws IgniteException { if (fut == null) { fut = ignite.compute().executeAsync(VerifyBackupPartitionsTaskV2.class, arg); if (!fut.isDone()) { jobCtx.holdcc(); fut.listen(new IgniteInClosure<IgniteFuture<IdleVerifyResultV2>>() { @Override public void apply(IgniteFuture<IdleVerifyResultV2> f) { jobCtx.callcc(); } }); return null; } } return fut.get(); }
/** {@inheritDoc} */ @Override protected ResultT run(VisorIdleVerifyTaskArg arg) throws IgniteException { if (fut == null) { fut = ignite.compute().executeAsync(taskCls, arg); if (!fut.isDone()) { jobCtx.holdcc(); fut.listen(new IgniteInClosure<IgniteFuture<ResultT>>() { @Override public void apply(IgniteFuture<ResultT> f) { jobCtx.callcc(); } }); return null; } } return fut.get(); }
/** {@inheritDoc} */ @Override protected VisorIdleVerifyTaskResult run(VisorIdleVerifyTaskArg arg) throws IgniteException { if (fut == null) { fut = ignite.compute().executeAsync(VerifyBackupPartitionsTask.class, arg.getCaches()); if (!fut.isDone()) { jobCtx.holdcc(); fut.listen(new IgniteInClosure<IgniteFuture<Map<PartitionKey, List<PartitionHashRecord>>>>() { @Override public void apply(IgniteFuture<Map<PartitionKey, List<PartitionHashRecord>>> f) { jobCtx.callcc(); } }); return null; } } return new VisorIdleVerifyTaskResult(fut.get()); }