org.springframework.scheduling.TaskScheduler.schedule()方法的使用及代码示例

x33g5p2x  于2022-01-29 转载在 其他  
字(12.1k)|赞(0)|评价(0)|浏览(192)

本文整理了Java中org.springframework.scheduling.TaskScheduler.schedule()方法的一些代码示例,展示了TaskScheduler.schedule()的具体用法。这些代码示例主要来源于Github/Stackoverflow/Maven等平台,是从一些精选项目中提取出来的代码,具有较强的参考意义,能在一定程度帮忙到你。TaskScheduler.schedule()方法的具体详情如下:
包路径:org.springframework.scheduling.TaskScheduler
类名称:TaskScheduler
方法名:schedule

TaskScheduler.schedule介绍

[英]Schedule the given Runnable, invoking it at the specified execution time.

Execution will end once the scheduler shuts down or the returned ScheduledFuture gets cancelled.
[中]调度给定的Runnable,在指定的执行时间调用它。
一旦调度程序关闭或返回的ScheduledFuture被取消,执行将结束。

代码示例

代码示例来源:origin: spring-projects/spring-security

  1. @Override
  2. public ScheduledFuture<?> schedule(Runnable task, Date startTime) {
  3. return taskScheduler.schedule(task, startTime);
  4. }

代码示例来源:origin: spring-projects/spring-framework

  1. /**
  2. * Schedule the given {@link Runnable}, invoking it at the specified execution time.
  3. * <p>Execution will end once the scheduler shuts down or the returned
  4. * {@link ScheduledFuture} gets cancelled.
  5. * @param task the Runnable to execute whenever the trigger fires
  6. * @param startTime the desired execution time for the task
  7. * (if this is in the past, the task will be executed immediately, i.e. as soon as possible)
  8. * @return a {@link ScheduledFuture} representing pending completion of the task
  9. * @throws org.springframework.core.task.TaskRejectedException if the given task was not accepted
  10. * for internal reasons (e.g. a pool overload handling policy or a pool shutdown in progress)
  11. * @since 5.0
  12. * @see #schedule(Runnable, Date)
  13. */
  14. default ScheduledFuture<?> schedule(Runnable task, Instant startTime) {
  15. return schedule(task, Date.from(startTime));
  16. }

代码示例来源:origin: spring-projects/spring-security

  1. @Override
  2. public ScheduledFuture<?> schedule(Runnable task, Trigger trigger) {
  3. return taskScheduler.schedule(task, trigger);
  4. }

代码示例来源:origin: spring-projects/spring-framework

  1. private void scheduleConnectTimeoutTask(ConnectCallback connectHandler) {
  2. if (this.timeoutScheduler != null) {
  3. if (logger.isTraceEnabled()) {
  4. logger.trace("Scheduling connect to time out after " + this.timeoutValue + " ms.");
  5. }
  6. Date timeoutDate = new Date(System.currentTimeMillis() + this.timeoutValue);
  7. this.timeoutScheduler.schedule(connectHandler, timeoutDate);
  8. }
  9. else if (logger.isTraceEnabled()) {
  10. logger.trace("Connect timeout task not scheduled (no TaskScheduler configured).");
  11. }
  12. }

代码示例来源:origin: org.springframework/spring-context

  1. /**
  2. * Schedule the given {@link Runnable}, invoking it at the specified execution time.
  3. * <p>Execution will end once the scheduler shuts down or the returned
  4. * {@link ScheduledFuture} gets cancelled.
  5. * @param task the Runnable to execute whenever the trigger fires
  6. * @param startTime the desired execution time for the task
  7. * (if this is in the past, the task will be executed immediately, i.e. as soon as possible)
  8. * @return a {@link ScheduledFuture} representing pending completion of the task
  9. * @throws org.springframework.core.task.TaskRejectedException if the given task was not accepted
  10. * for internal reasons (e.g. a pool overload handling policy or a pool shutdown in progress)
  11. * @since 5.0
  12. * @see #schedule(Runnable, Date)
  13. */
  14. default ScheduledFuture<?> schedule(Runnable task, Instant startTime) {
  15. return schedule(task, Date.from(startTime));
  16. }

代码示例来源:origin: Netflix/genie

  1. private synchronized void setDisconnected() {
  2. this.isConnected = false;
  3. // Schedule a stream reset
  4. this.taskScheduler.schedule(
  5. this::resetStreamTask,
  6. Instant.ofEpochMilli(System.currentTimeMillis() + STREAM_RESET_DELAY_MILLIS)
  7. );
  8. }

代码示例来源:origin: spring-projects/spring-framework

  1. private void initReceiptHandling() {
  2. Assert.notNull(getTaskScheduler(), "To track receipts, a TaskScheduler must be configured");
  3. DefaultStompSession.this.receiptHandlers.put(this.receiptId, this);
  4. Date startTime = new Date(System.currentTimeMillis() + getReceiptTimeLimit());
  5. this.future = getTaskScheduler().schedule(this::handleReceiptNotReceived, startTime);
  6. }

代码示例来源:origin: spring-projects/spring-framework

  1. /**
  2. * Schedule the specified trigger task, either right away if possible
  3. * or on initialization of the scheduler.
  4. * @return a handle to the scheduled task, allowing to cancel it
  5. * @since 4.3
  6. */
  7. @Nullable
  8. public ScheduledTask scheduleTriggerTask(TriggerTask task) {
  9. ScheduledTask scheduledTask = this.unresolvedTasks.remove(task);
  10. boolean newTask = false;
  11. if (scheduledTask == null) {
  12. scheduledTask = new ScheduledTask(task);
  13. newTask = true;
  14. }
  15. if (this.taskScheduler != null) {
  16. scheduledTask.future = this.taskScheduler.schedule(task.getRunnable(), task.getTrigger());
  17. }
  18. else {
  19. addTriggerTask(task);
  20. this.unresolvedTasks.put(task, scheduledTask);
  21. }
  22. return (newTask ? scheduledTask : null);
  23. }

代码示例来源:origin: spring-projects/spring-framework

  1. protected void scheduleHeartbeat() {
  2. if (this.heartbeatDisabled) {
  3. return;
  4. }
  5. synchronized (this.responseLock) {
  6. cancelHeartbeat();
  7. if (!isActive()) {
  8. return;
  9. }
  10. Date time = new Date(System.currentTimeMillis() + this.config.getHeartbeatTime());
  11. this.heartbeatTask = new HeartbeatTask();
  12. this.heartbeatFuture = this.config.getTaskScheduler().schedule(this.heartbeatTask, time);
  13. if (logger.isTraceEnabled()) {
  14. logger.trace("Scheduled heartbeat in session " + getId());
  15. }
  16. }
  17. }

代码示例来源:origin: spring-projects/spring-framework

  1. /**
  2. * Schedule the specified cron task, either right away if possible
  3. * or on initialization of the scheduler.
  4. * @return a handle to the scheduled task, allowing to cancel it
  5. * (or {@code null} if processing a previously registered task)
  6. * @since 4.3
  7. */
  8. @Nullable
  9. public ScheduledTask scheduleCronTask(CronTask task) {
  10. ScheduledTask scheduledTask = this.unresolvedTasks.remove(task);
  11. boolean newTask = false;
  12. if (scheduledTask == null) {
  13. scheduledTask = new ScheduledTask(task);
  14. newTask = true;
  15. }
  16. if (this.taskScheduler != null) {
  17. scheduledTask.future = this.taskScheduler.schedule(task.getRunnable(), task.getTrigger());
  18. }
  19. else {
  20. addCronTask(task);
  21. this.unresolvedTasks.put(task, scheduledTask);
  22. }
  23. return (newTask ? scheduledTask : null);
  24. }

代码示例来源:origin: org.springframework/spring-context

  1. /**
  2. * Schedule the specified trigger task, either right away if possible
  3. * or on initialization of the scheduler.
  4. * @return a handle to the scheduled task, allowing to cancel it
  5. * @since 4.3
  6. */
  7. @Nullable
  8. public ScheduledTask scheduleTriggerTask(TriggerTask task) {
  9. ScheduledTask scheduledTask = this.unresolvedTasks.remove(task);
  10. boolean newTask = false;
  11. if (scheduledTask == null) {
  12. scheduledTask = new ScheduledTask(task);
  13. newTask = true;
  14. }
  15. if (this.taskScheduler != null) {
  16. scheduledTask.future = this.taskScheduler.schedule(task.getRunnable(), task.getTrigger());
  17. }
  18. else {
  19. addTriggerTask(task);
  20. this.unresolvedTasks.put(task, scheduledTask);
  21. }
  22. return (newTask ? scheduledTask : null);
  23. }

代码示例来源:origin: org.springframework/spring-context

  1. /**
  2. * Schedule the specified cron task, either right away if possible
  3. * or on initialization of the scheduler.
  4. * @return a handle to the scheduled task, allowing to cancel it
  5. * (or {@code null} if processing a previously registered task)
  6. * @since 4.3
  7. */
  8. @Nullable
  9. public ScheduledTask scheduleCronTask(CronTask task) {
  10. ScheduledTask scheduledTask = this.unresolvedTasks.remove(task);
  11. boolean newTask = false;
  12. if (scheduledTask == null) {
  13. scheduledTask = new ScheduledTask(task);
  14. newTask = true;
  15. }
  16. if (this.taskScheduler != null) {
  17. scheduledTask.future = this.taskScheduler.schedule(task.getRunnable(), task.getTrigger());
  18. }
  19. else {
  20. addCronTask(task);
  21. this.unresolvedTasks.put(task, scheduledTask);
  22. }
  23. return (newTask ? scheduledTask : null);
  24. }

代码示例来源:origin: spring-projects/spring-security

  1. @Test
  2. public void testSchedulerWithRunnableAndInstant() {
  3. Instant date = Instant.now();
  4. delegatingSecurityContextTaskScheduler.schedule(runnable, date);
  5. verify(scheduler).schedule(any(Runnable.class), any(Date.class));
  6. }

代码示例来源:origin: spring-projects/spring-security

  1. @Test
  2. public void testSchedulerWithRunnableAndTrigger() {
  3. delegatingSecurityContextTaskScheduler.schedule(runnable, trigger);
  4. verify(scheduler).schedule(any(Runnable.class), any(Trigger.class));
  5. }

代码示例来源:origin: spring-projects/spring-framework

  1. @Test
  2. @SuppressWarnings({ "unchecked", "rawtypes" })
  3. public void receiptNotReceived() {
  4. TaskScheduler taskScheduler = mock(TaskScheduler.class);
  5. this.session.afterConnected(this.connection);
  6. this.session.setTaskScheduler(taskScheduler);
  7. AtomicReference<Boolean> notReceived = new AtomicReference<>();
  8. ScheduledFuture future = mock(ScheduledFuture.class);
  9. when(taskScheduler.schedule(any(Runnable.class), any(Date.class))).thenReturn(future);
  10. StompHeaders headers = new StompHeaders();
  11. headers.setDestination("/topic/foo");
  12. headers.setReceipt("my-receipt");
  13. Receiptable receiptable = this.session.send(headers, "payload");
  14. receiptable.addReceiptLostTask(() -> notReceived.set(true));
  15. ArgumentCaptor<Runnable> taskCaptor = ArgumentCaptor.forClass(Runnable.class);
  16. verify(taskScheduler).schedule(taskCaptor.capture(), (Date) notNull());
  17. Runnable scheduledTask = taskCaptor.getValue();
  18. assertNotNull(scheduledTask);
  19. assertNull(notReceived.get());
  20. scheduledTask.run();
  21. assertTrue(notReceived.get());
  22. verify(future).cancel(true);
  23. verifyNoMoreInteractions(future);
  24. }

代码示例来源:origin: spring-projects/spring-framework

  1. @Test
  2. public void fallbackAfterTimeout() throws Exception {
  3. TaskScheduler scheduler = mock(TaskScheduler.class);
  4. Runnable sessionCleanupTask = mock(Runnable.class);
  5. DefaultTransportRequest request1 = createTransportRequest(this.webSocketTransport, TransportType.WEBSOCKET);
  6. DefaultTransportRequest request2 = createTransportRequest(this.xhrTransport, TransportType.XHR_STREAMING);
  7. request1.setFallbackRequest(request2);
  8. request1.setTimeoutScheduler(scheduler);
  9. request1.addTimeoutTask(sessionCleanupTask);
  10. request1.connect(null, this.connectFuture);
  11. assertTrue(this.webSocketTransport.invoked());
  12. assertFalse(this.xhrTransport.invoked());
  13. // Get and invoke the scheduled timeout task
  14. ArgumentCaptor<Runnable> taskCaptor = ArgumentCaptor.forClass(Runnable.class);
  15. verify(scheduler).schedule(taskCaptor.capture(), any(Date.class));
  16. verifyNoMoreInteractions(scheduler);
  17. taskCaptor.getValue().run();
  18. assertTrue(this.xhrTransport.invoked());
  19. verify(sessionCleanupTask).run();
  20. }

代码示例来源:origin: spring-projects/spring-framework

  1. @Test
  2. public void sendHeartbeat() throws Exception {
  3. this.session.setActive(true);
  4. this.session.sendHeartbeat();
  5. assertEquals(1, this.session.getSockJsFramesWritten().size());
  6. assertEquals(SockJsFrame.heartbeatFrame(), this.session.getSockJsFramesWritten().get(0));
  7. verify(this.taskScheduler).schedule(any(Runnable.class), any(Date.class));
  8. verifyNoMoreInteractions(this.taskScheduler);
  9. }

代码示例来源:origin: spring-projects/spring-framework

  1. @Test
  2. public void scheduleAndCancelHeartbeat() throws Exception {
  3. ScheduledFuture<?> task = mock(ScheduledFuture.class);
  4. willReturn(task).given(this.taskScheduler).schedule(any(Runnable.class), any(Date.class));
  5. this.session.setActive(true);
  6. this.session.scheduleHeartbeat();
  7. verify(this.taskScheduler).schedule(any(Runnable.class), any(Date.class));
  8. verifyNoMoreInteractions(this.taskScheduler);
  9. given(task.isCancelled()).willReturn(false);
  10. given(task.cancel(false)).willReturn(true);
  11. this.session.cancelHeartbeat();
  12. verify(task).cancel(false);
  13. verifyNoMoreInteractions(task);
  14. }

代码示例来源:origin: spring-projects/spring-framework

  1. @Test
  2. public void handleRequestXhr() throws Exception {
  3. XhrPollingTransportHandler transportHandler = new XhrPollingTransportHandler();
  4. transportHandler.initialize(this.sockJsConfig);
  5. AbstractSockJsSession session = transportHandler.createSession("1", this.webSocketHandler, null);
  6. transportHandler.handleRequest(this.request, this.response, this.webSocketHandler, session);
  7. assertEquals("application/javascript;charset=UTF-8", this.response.getHeaders().getContentType().toString());
  8. assertEquals("o\n", this.servletResponse.getContentAsString());
  9. assertFalse("Polling request should complete after open frame", this.servletRequest.isAsyncStarted());
  10. verify(this.webSocketHandler).afterConnectionEstablished(session);
  11. resetRequestAndResponse();
  12. transportHandler.handleRequest(this.request, this.response, this.webSocketHandler, session);
  13. assertTrue("Polling request should remain open", this.servletRequest.isAsyncStarted());
  14. verify(this.taskScheduler).schedule(any(Runnable.class), any(Date.class));
  15. resetRequestAndResponse();
  16. transportHandler.handleRequest(this.request, this.response, this.webSocketHandler, session);
  17. assertFalse("Request should have been rejected", this.servletRequest.isAsyncStarted());
  18. assertEquals("c[2010,\"Another connection still open\"]\n", this.servletResponse.getContentAsString());
  19. }

代码示例来源:origin: spring-projects/spring-integration

  1. @Override
  2. public synchronized void start() {
  3. if (!this.running) {
  4. Assert.notNull(getTaskScheduler(), "a task scheduler is required");
  5. this.reaperScheduledFuture =
  6. getTaskScheduler()
  7. .schedule(this, new Date(System.currentTimeMillis() + this.reaperDelay));
  8. this.running = true;
  9. }
  10. }

相关文章