当前位置: 首页>>代码示例>>Java>>正文


Java ScheduledFuture.cancel方法代码示例

本文整理汇总了Java中java.util.concurrent.ScheduledFuture.cancel方法的典型用法代码示例。如果您正苦于以下问题:Java ScheduledFuture.cancel方法的具体用法?Java ScheduledFuture.cancel怎么用?Java ScheduledFuture.cancel使用的例子?那么恭喜您, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在java.util.concurrent.ScheduledFuture的用法示例。


在下文中一共展示了ScheduledFuture.cancel方法的15个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的Java代码示例。

示例1: onDeviceData

import java.util.concurrent.ScheduledFuture; //导入方法依赖的package包/类
private void onDeviceData(List<DeviceData> data) {
    for (DeviceData dd : data) {
        if (devices.add(dd.getName())) {
        		gateway.onDeviceConnect(dd.getName(), dd.getType());
        }
        if (!dd.getAttributes().isEmpty()) {
            gateway.onDeviceAttributesUpdate(dd.getName(), dd.getAttributes());
        }
        if (!dd.getTelemetry().isEmpty()) {
            gateway.onDeviceTelemetry(dd.getName(), dd.getTelemetry());
        }
        if (dd.getTimeout() != 0) {
            ScheduledFuture<?> future = deviceKeepAliveTimers.get(dd.getName());
            if (future != null) {
                log.debug("Re-scheduling keep alive timer for device {} with timeout = {}", dd.getName(), dd.getTimeout());
                future.cancel(true);
                deviceKeepAliveTimers.remove(dd.getName());
                scheduleDeviceKeepAliveTimer(dd);
            } else {
                log.debug("Scheduling keep alive timer for device {} with timeout = {}", dd.getName(), dd.getTimeout());
                scheduleDeviceKeepAliveTimer(dd);
            }
        }
    }
}
 
开发者ID:osswangxining,项目名称:iot-edge-greengrass,代码行数:26,代码来源:WiotpMqttBrokerMonitor.java

示例2: testSchedule4

import java.util.concurrent.ScheduledFuture; //导入方法依赖的package包/类
/**
 * scheduleAtFixedRate executes runnable after given initial delay
 */
public void testSchedule4() throws InterruptedException {
    final CustomExecutor p = new CustomExecutor(1);
    try (PoolCleaner cleaner = cleaner(p)) {
        final long startTime = System.nanoTime();
        final CountDownLatch done = new CountDownLatch(1);
        Runnable task = new CheckedRunnable() {
            public void realRun() {
                done.countDown();
                assertTrue(millisElapsedSince(startTime) >= timeoutMillis());
            }};
        ScheduledFuture f =
            p.scheduleAtFixedRate(task, timeoutMillis(),
                                  LONG_DELAY_MS, MILLISECONDS);
        await(done);
        assertTrue(millisElapsedSince(startTime) >= timeoutMillis());
        f.cancel(true);
    }
}
 
开发者ID:AdoptOpenJDK,项目名称:openjdk-jdk10,代码行数:22,代码来源:ScheduledExecutorSubclassTest.java

示例3: scheduleWithFixedDelay

import java.util.concurrent.ScheduledFuture; //导入方法依赖的package包/类
public ScheduledFuture<?> scheduleWithFixedDelay(Runnable task,
        Date startTime, long delay) {
    if (!enabled) {
        logger.debug("skip : {}", task);

        return null;
    }

    ScheduledFuture<?> future = instance.scheduleWithFixedDelay(task,
            startTime, delay);
    String runnableKey = findRunnableKey(task);

    if (Boolean.FALSE.equals(skipMap.get(runnableKey))) {
        future.cancel(true);
    }

    return future;
}
 
开发者ID:zhaojunfei,项目名称:lemon,代码行数:19,代码来源:ProxyTaskScheduler.java

示例4: testPurge

import java.util.concurrent.ScheduledFuture; //导入方法依赖的package包/类
/**
 * purge removes cancelled tasks from the queue
 */
public void testPurge() throws InterruptedException {
    final ScheduledFuture[] tasks = new ScheduledFuture[5];
    final Runnable releaser = new Runnable() { public void run() {
        for (ScheduledFuture task : tasks)
            if (task != null) task.cancel(true); }};
    final CustomExecutor p = new CustomExecutor(1);
    try (PoolCleaner cleaner = cleaner(p, releaser)) {
        for (int i = 0; i < tasks.length; i++)
            tasks[i] = p.schedule(new SmallPossiblyInterruptedRunnable(),
                                  LONG_DELAY_MS, MILLISECONDS);
        int max = tasks.length;
        if (tasks[4].cancel(true)) --max;
        if (tasks[3].cancel(true)) --max;
        // There must eventually be an interference-free point at
        // which purge will not fail. (At worst, when queue is empty.)
        long startTime = System.nanoTime();
        do {
            p.purge();
            long count = p.getTaskCount();
            if (count == max)
                return;
        } while (millisElapsedSince(startTime) < LONG_DELAY_MS);
        fail("Purge failed to remove cancelled tasks");
    }
}
 
开发者ID:AdoptOpenJDK,项目名称:openjdk-jdk10,代码行数:29,代码来源:ScheduledExecutorSubclassTest.java

示例5: testFixedRateSequence

import java.util.concurrent.ScheduledFuture; //导入方法依赖的package包/类
/**
 * scheduleAtFixedRate executes series of tasks at given rate.
 * Eventually, it must hold that:
 *   cycles - 1 <= elapsedMillis/delay < cycles
 */
public void testFixedRateSequence() throws InterruptedException {
    final CustomExecutor p = new CustomExecutor(1);
    try (PoolCleaner cleaner = cleaner(p)) {
        for (int delay = 1; delay <= LONG_DELAY_MS; delay *= 3) {
            final long startTime = System.nanoTime();
            final int cycles = 8;
            final CountDownLatch done = new CountDownLatch(cycles);
            final Runnable task = new CheckedRunnable() {
                public void realRun() { done.countDown(); }};
            final ScheduledFuture periodicTask =
                p.scheduleAtFixedRate(task, 0, delay, MILLISECONDS);
            final int totalDelayMillis = (cycles - 1) * delay;
            await(done, totalDelayMillis + LONG_DELAY_MS);
            periodicTask.cancel(true);
            final long elapsedMillis = millisElapsedSince(startTime);
            assertTrue(elapsedMillis >= totalDelayMillis);
            if (elapsedMillis <= cycles * delay)
                return;
            // else retry with longer delay
        }
        fail("unexpected execution rate");
    }
}
 
开发者ID:AdoptOpenJDK,项目名称:openjdk-jdk10,代码行数:29,代码来源:ScheduledExecutorSubclassTest.java

示例6: registerService

import java.util.concurrent.ScheduledFuture; //导入方法依赖的package包/类
/**
 * Registers a single service into consul.
 *
 * @param advertiseAddress The address the service is listening to.
 * @param port The port that the service is listening on.
 * @param serviceName The name of the service.
 */
private void registerService(final String advertiseAddress, final int port, final String serviceName) {
    checkNotNull(Strings.emptyToNull(advertiseAddress), "advertiseAddress");
    checkNotNull(Strings.emptyToNull(serviceName), "serviceName");

    final String id = computeId(advertiseAddress, port, serviceName);

    final NewService newService = new NewService();
    newService.setId(id);
    newService.setName(serviceName);
    newService.setTags(tags);
    newService.setAddress(advertiseAddress);
    newService.setPort(port);
    newService.setChecks(checks);

    agentClient.agentServiceRegister(newService);

    final ScheduledFuture future = scheduledExecutorService.scheduleAtFixedRate(
            () -> heartbeat(id), heartbeatPeriod, heartbeatPeriod, heartbeatPeriodTimeUnit
    );

    final ScheduledFuture previous = servicePingers.put(id, future);
    if (previous != null) {
        previous.cancel(true);
    }
}
 
开发者ID:indeedeng-alpha,项目名称:indeed-grpc-java,代码行数:33,代码来源:ConsulServiceRegistrar.java

示例7: close

import java.util.concurrent.ScheduledFuture; //导入方法依赖的package包/类
public void close() {
	System.out.println("TaskCenter closing");
	this.monitoring.cancel(true);

	// 停止所有定时任务
	for (ScheduledFuture<?> sf : this.scheduledFutureList) {
		if (!sf.isCancelled() || !sf.isDone()) {
			sf.cancel(true);
		}
	}
	this.scheduledFutureList.clear();

	Iterator<Timer> iter = this.timers.values().iterator();
	while (iter.hasNext()) {
		Timer timer = iter.next();
		timer.cancel();
	}
	this.timers.clear();

	// 关闭滑动窗
	this.slidingWindow.stop();

	// 关闭线程池
	this.mainExecutor.shutdown();
	this.scheduledExecutor.shutdown();
	System.out.println("TaskCenter closed");
}
 
开发者ID:juebanlin,项目名称:util4j,代码行数:28,代码来源:TaskCenter.java

示例8: testSchedule4

import java.util.concurrent.ScheduledFuture; //导入方法依赖的package包/类
/**
 * scheduleAtFixedRate executes runnable after given initial delay
 */
public void testSchedule4() throws Exception {
    final ScheduledThreadPoolExecutor p = new ScheduledThreadPoolExecutor(1);
    try (PoolCleaner cleaner = cleaner(p)) {
        final long startTime = System.nanoTime();
        final CountDownLatch done = new CountDownLatch(1);
        Runnable task = new CheckedRunnable() {
            public void realRun() {
                done.countDown();
                assertTrue(millisElapsedSince(startTime) >= timeoutMillis());
            }};
        ScheduledFuture f =
            p.scheduleAtFixedRate(task, timeoutMillis(),
                                  LONG_DELAY_MS, MILLISECONDS);
        await(done);
        assertTrue(millisElapsedSince(startTime) >= timeoutMillis());
        f.cancel(true);
    }
}
 
开发者ID:AdoptOpenJDK,项目名称:openjdk-jdk10,代码行数:22,代码来源:ScheduledExecutorTest.java

示例9: deregisterService

import java.util.concurrent.ScheduledFuture; //导入方法依赖的package包/类
/**
 * Removes the service identified by the provided id from consul.
 *
 * @param id The id of the service.
 */
@VisibleForTesting
void deregisterService(final String id) {
    agentClient.agentServiceDeregister(id);

    final ScheduledFuture future = servicePingers.remove(id);
    if (future != null) {
        future.cancel(true);
    }
}
 
开发者ID:indeedeng-alpha,项目名称:indeed-grpc-java,代码行数:15,代码来源:ConsulServiceRegistrar.java

示例10: testAppEnginePeriodicRunnable

import java.util.concurrent.ScheduledFuture; //导入方法依赖的package包/类
@Test
public void testAppEnginePeriodicRunnable() throws InterruptedException {
  final Set<Long> threadIds = new HashSet<>();
  final Semaphore semaphore = new Semaphore(0);

  RevivingScheduledExecutor executor =
      new RevivingScheduledExecutor(THREAD_FACTORY, "testAppEnginePeriodicRunnable", 0, 100);

  ScheduledFuture<?> future =
      executor.scheduleAtFixedRate(
          new Runnable() {
            @Override
            public void run() {
              threadIds.add(Thread.currentThread().getId());
              semaphore.release();
            }
          },
          0,
          10,
          TimeUnit.MILLISECONDS);

  try {
    Assert.assertTrue(semaphore.tryAcquire(50, 10, TimeUnit.SECONDS));
    Assert.assertTrue(threadIds.size() > 1);
  } finally {
    future.cancel(true);
    executor.shutdownNow();
  }
}
 
开发者ID:firebase,项目名称:firebase-admin-java,代码行数:30,代码来源:RevivingScheduledExecutorTest.java

示例11: removeSpawn

import java.util.concurrent.ScheduledFuture; //导入方法依赖的package包/类
/**
 * Remove a registered spawn from the list, specified by the given spawn
 * instance.
 *
 * @param spawnInst
 * @return boolean removedSuccessfully
 */
@SuppressWarnings("rawtypes")
public boolean removeSpawn(AutoSpawnInstance spawnInst)
{
	if (!isSpawnRegistered(spawnInst))
		return false;

	try
	{
		// Try to remove from the list of registered spawns if it exists.
		_registeredSpawns.remove(spawnInst);

		// Cancel the currently associated running scheduled task.
		ScheduledFuture respawnTask = _runningSpawns.remove(spawnInst._objectId);
		respawnTask.cancel(false);

		if (Config.DEBUG)
			_log.config("AutoSpawnHandler: Removed auto spawn for NPC ID "
					+ spawnInst._npcId + " (Object ID = "
					+ spawnInst._objectId + ").");
	} catch (Exception e)
	{
		_log.warning("AutoSpawnHandler: Could not auto spawn for NPC ID "
				+ spawnInst._npcId + " (Object ID = " + spawnInst._objectId
				+ "): " + e);
		return false;
	}

	return true;
}
 
开发者ID:L2jBrasil,项目名称:L2jBrasil,代码行数:37,代码来源:AutoSpawnHandler.java

示例12: setSpawnActive

import java.util.concurrent.ScheduledFuture; //导入方法依赖的package包/类
/**
 * Sets the active state of the specified spawn.
 *
 * @param spawnInst
 * @param isActive
 */
@SuppressWarnings("rawtypes")
public void setSpawnActive(AutoSpawnInstance spawnInst, boolean isActive)
{
	if (spawnInst == null)
		return;

	int objectId = spawnInst._objectId;

	if (isSpawnRegistered(objectId))
	{
		ScheduledFuture spawnTask = null;

		if (isActive)
		{
			AutoSpawner rs = new AutoSpawner(objectId);

			if (spawnInst._desDelay > 0)
				spawnTask = ThreadPoolManager.getInstance().scheduleEffectAtFixedRate(rs,
						spawnInst._initDelay, spawnInst._resDelay);
			else
				spawnTask = ThreadPoolManager.getInstance().scheduleEffect(rs, spawnInst._initDelay);

			_runningSpawns.put(objectId, spawnTask);
		} else
		{
			AutoDespawner rd = new AutoDespawner(objectId);
			spawnTask = _runningSpawns.remove(objectId);

			if (spawnTask != null)
				spawnTask.cancel(false);

			ThreadPoolManager.getInstance().scheduleEffect(rd, 0);
		}

		spawnInst.setSpawnActive(isActive);
	}
}
 
开发者ID:L2jBrasil,项目名称:L2jBrasil,代码行数:44,代码来源:AutoSpawnHandler.java

示例13: registerPeriodic

import java.util.concurrent.ScheduledFuture; //导入方法依赖的package包/类
/**
 * Registers a periodic task.
 * @param task the task to execute.
 * @param delay the delay to first execution.
 * @param period the period between executions.
 * @param timeout the time to interruption.
 * @param unit the time unit.
 */
private static void registerPeriodic(Runnable task, long delay, long period, long timeout, TimeUnit unit) {
  final ScheduledExecutorService scheduler =
      Executors.newScheduledThreadPool(1);
  final ScheduledFuture<?> handler =
      scheduler.scheduleAtFixedRate(task, delay, period, unit);

  if (timeout > 0) {
    Runnable interrupt = () -> handler.cancel(true);
    scheduler.schedule(interrupt, timeout, TimeUnit.SECONDS);
  }
}
 
开发者ID:braineering,项目名称:ares,代码行数:20,代码来源:RuntimeManager.java

示例14: stopHeartbeatTimer

import java.util.concurrent.ScheduledFuture; //导入方法依赖的package包/类
private void stopHeartbeatTimer() {
    try {
        ScheduledFuture<?> timer = heatbeatTimer;
        if (timer != null && ! timer.isCancelled()) {
            timer.cancel(true);
        }
    } catch (Throwable t) {
        logger.warn(t.getMessage(), t);
    } finally {
        heatbeatTimer =null;
    }
}
 
开发者ID:flychao88,项目名称:dubbocloud,代码行数:13,代码来源:HeaderExchangeServer.java

示例15: testScheduleFixedRateWithShorterIntervalThanRunMethodTimeAreNotDelayed

import java.util.concurrent.ScheduledFuture; //导入方法依赖的package包/类
@RandomlyFails
public void testScheduleFixedRateWithShorterIntervalThanRunMethodTimeAreNotDelayed() throws Exception {
    final CountDownLatch latch = new CountDownLatch(10);
    final List<Long> intervals = new CopyOnWriteArrayList<Long>();
    class C implements Runnable {
        long start = Long.MIN_VALUE;

        @Override
        public void run() {
            long end = System.currentTimeMillis();
            if (start != Long.MIN_VALUE) {
                intervals.add(end - start);
            }
            try {
                Thread.sleep(500);
            } catch (InterruptedException ex) {
                
            }
            start = System.currentTimeMillis();
            latch.countDown();
        }
    }
    C c = new C();
    long initialDelay = 100;
    long period = 100;
    RequestProcessor rp = new RequestProcessor("testScheduleFixedRateWithShorterIntervalThanRunMethodTimeAreNotDelayed", 10, true);
    ScheduledFuture<?> f = rp.scheduleAtFixedRate(c, initialDelay, period, TimeUnit.MILLISECONDS);
    latch.await();
    f.cancel(true);
    rp.stop();
    int max = intervals.size();
    for (int i= 0; i < max; i++) {
        long iv = intervals.get(i);
        assertFalse ("Interval " + i + " should have been at least less than requested interval * 1.5 with fixed rate" + iv, iv > 150);
    }
}
 
开发者ID:apache,项目名称:incubator-netbeans,代码行数:37,代码来源:RequestProcessor180386Test.java


注:本文中的java.util.concurrent.ScheduledFuture.cancel方法示例由纯净天空整理自Github/MSDocs等开源代码及文档管理平台,相关代码片段筛选自各路编程大神贡献的开源项目,源码版权归原作者所有,传播和使用请参考对应项目的License;未经允许,请勿转载。