use of com.hazelcast.scheduledexecutor.IScheduledFuture in project hazelcast by hazelcast.
the class ScheduledExecutorServiceSlowTest method cancelUninterruptedTask_waitUntilRunCompleted_checkStatusIsCancelled.
@Test
public void cancelUninterruptedTask_waitUntilRunCompleted_checkStatusIsCancelled() throws Exception {
HazelcastInstance[] instances = createClusterWithCount(1);
String runFinishedLatchName = "runFinishedLatch";
ICountDownLatch latch = instances[0].getCPSubsystem().getCountDownLatch(runFinishedLatchName);
latch.trySetCount(1);
IScheduledExecutorService executorService = getScheduledExecutor(instances, "s");
IScheduledFuture future = executorService.scheduleAtFixedRate(new HotLoopBusyTask(runFinishedLatchName), 0, 1, SECONDS);
assertFalse(future.isCancelled());
assertFalse(future.isDone());
future.cancel(false);
assertTrue(future.isCancelled());
assertTrue(future.isDone());
// wait till the task is actually done, since even though we cancelled the task is current task is still running
latch.await(60, SECONDS);
// make sure SyncState goes through
sleepSeconds(10);
// check once more that the task status is consistent
assertTrue(future.isCancelled());
assertTrue(future.isDone());
}
use of com.hazelcast.scheduledexecutor.IScheduledFuture in project hazelcast by hazelcast.
the class ScheduledExecutorServiceSlowTest method stats_manyRepetitionsTask.
@Test
public void stats_manyRepetitionsTask() throws Exception {
HazelcastInstance[] instances = createClusterWithCount(4);
ICountDownLatch latch = instances[0].getCPSubsystem().getCountDownLatch("latch");
latch.trySetCount(6);
IScheduledExecutorService executorService = getScheduledExecutor(instances, "s");
IScheduledFuture future = executorService.scheduleAtFixedRate(new ICountdownLatchRunnableTask("latch"), 0, 10, SECONDS);
latch.await(120, SECONDS);
future.cancel(false);
ScheduledTaskStatistics stats = future.getStats();
assertEquals(6, stats.getTotalRuns(), 1);
}
use of com.hazelcast.scheduledexecutor.IScheduledFuture in project hazelcast by hazelcast.
the class ScheduledExecutorServiceSlowTest method cancelUninterruptedTask_waitUntilRunCompleted_killMember_checkStatusIsCancelled.
@Test
public void cancelUninterruptedTask_waitUntilRunCompleted_killMember_checkStatusIsCancelled() throws Exception {
HazelcastInstance[] instances = createClusterWithCount(2);
String key = generateKeyOwnedBy(instances[1]);
String runFinishedLatchName = "runFinishedLatch";
ICountDownLatch latch = instances[0].getCPSubsystem().getCountDownLatch(runFinishedLatchName);
latch.trySetCount(1);
IScheduledExecutorService executorService = getScheduledExecutor(instances, "s");
IScheduledFuture future = executorService.scheduleOnKeyOwnerAtFixedRate(new HotLoopBusyTask(runFinishedLatchName), key, 0, 1, SECONDS);
assertFalse(future.isCancelled());
assertFalse(future.isDone());
future.cancel(false);
assertTrue(future.isCancelled());
assertTrue(future.isDone());
// wait till the task is actually done, since even though we cancelled the task is current task is still running
latch.await(60, SECONDS);
// make sure SyncState goes through
sleepSeconds(10);
instances[1].getLifecycleService().terminate();
// check once more that the task status is consistent
assertTrue(future.isCancelled());
assertTrue(future.isDone());
}
Aggregations