`
hbxflihua
  • 浏览: 683638 次
  • 性别: Icon_minigender_1
  • 来自: 杭州
社区版块
存档分类
最新评论

延时调度任务demo

    博客分类:
  • java
阅读更多

 

 

1、定制调度任务:

import org.slf4j.Logger;
import org.slf4j.LoggerFactory;

import com.rd.ifaes.core.project.domain.Project;

/**
 * 项目缓存延时调度任务
 * @author lh
 * @version 3.0
 * @since 2016-8-26
 *
 */
public class ProjectCacheDelaySchedule implements Runnable {
	
	private final static Logger LOGGER = LoggerFactory.getLogger(ProjectCacheDelaySchedule.class);
	
	//项目信息
	private Project project;
	//延时时间(单位:秒)
	private long delay;
	
	public ProjectCacheDelaySchedule(Project project) {
		super();
		this.project = project;
		delay = project.getShowTime().getTime() - System.currentTimeMillis();
		delay = (delay > 0) ? delay / 1000 : 0;
	}
	
	/**
	 * 取得延时时间
	 * @return
	 */
	public long getDelay() {
		return delay;
	}

	/**
	 * project添加到缓存
	 */
	@Override
	public void run() {
		LOGGER.info("project to cache, projectNo="+project.getProjectNo());
		ProjectCache.setProject(project);
	}
	
}

 

 

2、加入调度任务:

	private static ScheduledExecutorService projectSaleService = Executors.newScheduledThreadPool(1);
	/**
	 * 项目上架 ( 仅供后台产品或借贷上架用 )
	 * @param project
	 */
	public static void projectSale(Project project){
		ProjectCacheDelaySchedule executor = new ProjectCacheDelaySchedule(project);
		projectSaleService.schedule(executor, executor.getDelay(), TimeUnit.SECONDS);
	}

 The end!

分享到:
评论

相关推荐

    基于SSM+quartz的定时任务管理demo

    本Demo以"基于SSM+quartz的定时任务管理"为主题,将展示如何在Spring、SpringMVC和MyBatis(SSM)框架基础上,集成Quartz作为调度引擎,实现高效灵活的定时任务管理。 **1. SSM框架简介** SSM是Spring、SpringMVC...

    FreeRTOS时间片调度(STM32F103C8T6)

    7. **延时与超时**:FreeRTOS提供了`vTaskDelay()`函数,任务可以调用此函数在指定的时钟滴答数后自动恢复执行,这对于实现周期性任务非常有用。 8. **调试工具**:FreeRTOS提供了一些内置的调试工具,如任务状态...

    不使用数据库动态设置定时任务-celery_demo.zip

    【标题】:“不使用数据库动态设置...这个“celery_demo-master”项目是一个很好的学习资源,它展示了如何在实际项目中实施上述概念,帮助开发者理解如何在不依赖数据库的情况下利用Celery进行高效的任务管理和调度。

    ucos_Demo.rar

    2. 任务调度:`OS_Sched()`函数是UCOS的调度核心,它会根据任务的优先级进行调度。 3. 任务切换:当有更高优先级的任务就绪时,`OSIntExit()`或`OSTaskSwHook()`会被调用来实现任务间的切换。 4. 信号量与互斥量:...

    android demo,使用Handler的postDelay,Runnable run实现延时3秒的splash。

    1. **Handler**: Handler是Android中处理消息和调度任务的重要组件。它可以在Android主线程中执行任务,避免了在其他线程中更新UI的操作导致的线程安全问题。Handler主要有两个核心方法:`sendMessage`和`...

    GD32F1_freeRTOS.zip_DEMO_GD32F103_freertos_gd32f rtos_gd32f3 fre

    3. **时间管理**:`vTaskDelay()`函数用于让任务暂停指定的延时时间,而`xTaskGetTickCount()`可以获取自系统启动以来的时钟周期数。 4. **同步机制**:DEMO可能包含了信号量(`xSemaphoreCreateMutex()`)或互斥锁的...

    ucosii_demo

    4. **时间管理**:系统时钟提供定时器服务,支持绝对和相对延时,以及周期性任务调度。 5. **可移植性**:UCOSII使用C语言编写,与硬件无关,便于在不同处理器上移植。 三、UCOSII Demo分析 "ucosii_demo"中的示例...

    gcd demo 线程

    10. **延时调度(Delayed Dispatch)**:GCD允许开发者设置延迟执行任务,这在需要定时触发操作时非常有用。 在实际开发中,GCD可以有效地解决多线程同步问题,提高程序的性能和响应速度。例如,你可以将耗时的计算...

    java实现一个小程序语句的延迟执行的小demo

    `ScheduledExecutorService`是`ExecutorService`的扩展,提供了调度任务的能力,可以用来执行一次或定期执行任务。下面是一个简单的使用`ScheduledExecutorService`实现延迟执行的Java代码示例: ```java import ...

    UCOSIII任务创建和删除

    UCOSIII还提供了其他任务控制功能,如任务挂起(`OS_TaskSuspend()`)、任务恢复(`OS_TaskResume()`)、任务延时(`OS_TaskDelay()`)等,这些功能使得开发者能够灵活地控制任务的执行流程。 总结,UCOSIII任务...

    Demo_EK-LM3S811.rar_DEMO_LM3S811 Demo

    4. **RTOS(实时操作系统)概念**:虽然DEMO可能不包含完整的RTOS,但理解如何在简单的嵌入式系统中实现任务调度是很有价值的。 5. **嵌入式系统的调试技巧**:例如使用仿真器或JTAG接口进行代码调试,分析程序运行...

    uc/os-iii UCOS在stm32板上单线程的DEMO

    任务的执行是由调度器根据优先级进行切换的,但由于此DEMO是单线程,所以没有任务切换,系统始终执行该LED控制任务。为了实现定时,可以利用UCOS-III的定时器功能,如OSTimerCreate()创建一个周期性定时器,回调函数...

    这是本人学习FreeRTOS的学习笔记有需要可以拿

    阻塞态的任务在延时结束后或外部事件触发后通常会返回到就绪态,等待调度器安排执行。 FreeRTOS中还有一个任务列表的概念,它由三个列表组成,分别是就序列表、阻塞列表和挂起列表。就序列表按照任务优先级来存放...

    GCDAfterTest Demo代码

    本Demo代码"**GCDAfterTest Demo**"专注于展示如何利用GCD实现延迟执行任务,即在指定时间后才开始运行某段代码。下面我们将深入探讨GCD的核心概念以及如何使用它来延迟运行队列。 **GCD基础知识** GCD是基于C语言...

    GCD 操作demo

    你可以将任务提交到队列,GCD会负责管理和调度这些任务的执行。 3. **主队列(Main Queue)**:这是默认的串行队列,与应用程序的主线程关联。在主队列上执行的任务会在用户界面线程上运行,确保了UI更新的同步性。...

    STM32 Task Sechduler

    STM32任务调度器是嵌入式开发中的一个重要概念,特别是在实时操作系统...Demo文件可能包含了一个具体的STM32任务调度器的示例代码,通过分析和学习这个示例,你可以更深入地了解如何在STM32上实现和应用任务调度。

    elastic-demo.zip

    - **调度策略**:支持CRON表达式定时、固定延时、一次性任务等多种调度方式。 - **监控与告警**:集成监控系统,对作业的运行状态进行实时监控,异常时发送告警通知。 - **扩展应用**:结合微服务、容器化等技术...

    ucos移植教程和demo版本.rar

    DEMO一般会创建两个任务,一个用于控制LED闪烁,另一个用于延时,通过信号量或者互斥锁实现同步。这有助于理解UCOS的任务切换和同步机制。 五、UCOS的中断服务程序 在STM32F407上,中断服务程序需谨慎处理,因为...

    爬虫javaDemo

    2. **功能拓展**:根据需求,可以添加定时任务、分布式爬虫、爬虫调度系统等功能,提升爬虫的灵活性和性能。 总之,Java爬虫是Java开发者必备的一项技能,通过理解和实践本Java爬虫Demo,开发者能够快速掌握爬虫的...

    GCDAfterTestAll Demo代码

    任何在主队列上调度的任务都会在主线程上执行,确保UI的流畅性。 在实践中,`GCDAfterTestAll`可能包含多个示例,演示如何在不同类型的队列上使用`dispatch_after`,以及如何处理不同优先级的任务。这将帮助开发者...

Global site tag (gtag.js) - Google Analytics