`

java调度:(二)在项目中调度策略的选择

 
阅读更多

目前的两个项目中,用到大部分的任务调度,有一些思考简单写下来.

一. 如果当前的任务调度很简单,例如:管理任务延迟执行("如1000ms后执行任务")以及周期性执行("如每500ms执行一次该任务"),那么可以选择Timer 和 scheduledExecutor, 因为scheduledExecutor在JDK1.5才有的,所以如果JDK太老,那只能使用Timer了,但至从JDK1.5之后,建议采用ScheduledExecutorService。,因为Timer是单线程执行任务,即不管有多少个任务在排队,只有一个任务能执行,在任务执行时有很多不确定性,

具体可见:java调度:(三)Timer中的单线程守护

scheduledExecutor:详细介绍可见:http://ketqi.blog.51cto.com/blog/1130608/687681 

 

二.如果调度比较复杂,则选择quartz,

 

三.如果希望任务即时调度,即生产一个任务马上就做一个任务,那一般使用消息队列.

  前面的任务调度策略,都是估算任务执行时间,例如,源数据从一个DB转存到另外一个DB,一般情况根据数据量估算一个大致的时间,例如,每周六晚上12点进行转存即可,不需要有一条数据就调用转存job去执行,这样的任务调度可以选择Timer\quartz\SchedulerExecutor进行非实时调度.

  但是,有的任务调度是需要实时的,例如我现在的项目有以下几个任务,

  1. 元搜索:在网站上搜索一些有效信息的URL
  2. 采集:根据搜索到的URL进行采集,并提取采集到作品的特征值
  3. 比对:对作品的特征值进行比对
  4. 取证:比对需要维权的项目进行取证

  调度这四个任务时,希望,有一条数据就马上执行,这时就应该用MQ,我们在项目中使用的是apache的ActiveMQ,这样当有一个取证任务时,会被马上执行.未完待续,介绍activeMQ(存储要执行的任务)+Executor(任务消费者)配合使用

 

分享到:
评论

相关推荐

    java源码:Java任务调度 jconch.rar

    Java任务调度是软件开发中的一个重要概念,主要用于自动化执行周期性的任务或者在特定时间点执行的任务。Jconch是一个基于Java实现的任务调度框架,它提供了一种简单、灵活的方式来管理和执行计划任务。在这个“java...

    Java调度原理及使用

    总结来说,Java调度原理涉及线程创建、优先级、调度策略等多个方面,开发者需要根据具体需求选择合适的调度方式,并合理使用并发工具,以实现高效、稳定的多线程程序。在实际应用中,要时刻注意线程安全,避免死锁、...

    水库调度java程序,水库调度运行方案,Java

    标题中的“水库调度java程序,水库调度运行方案,Java”表明了这个压缩包包含的是一个用Java编程语言实现的水库调度系统。水库调度是水资源管理中的一个重要环节,它涉及到对水库来水、用水需求以及出水流量的科学预测...

    JAVA项目:银行业务调度系统视频教程.rar

    在深入讲解这个Java项目之前,首先我们要了解Java在IT行业中的地位。Java是一种广泛使用的面向对象的编程语言,以其“一次编写,到处运行”的特性闻名,尤其在企业级应用开发领域,Java扮演着核心角色。银行业务调度...

    java 模拟操作系统的进程调度

    在“java 模拟操作系统的进程调度”这个项目中,我们将关注如何使用 Java 来实现这些算法。 1. 先来先服务(FCFS)调度:这种策略是最简单的,按照进程到达的顺序分配 CPU。在 Java 中,可以创建一个队列数据结构...

    调度算法 java源代码

    在项目"diaodu"中,可能包含实现了上述一种或多种调度算法的Java源代码,通过阅读和分析这些代码,我们可以学习到如何在Java中构建一个高效的调度系统,同时也能对调度算法的原理和实践有更深入的理解。

    模拟操作系统页面调度Java实现

    总结来说,这个项目通过Java编程语言,提供了对操作系统页面调度的模拟,有助于学习者深入理解页面调度的工作原理,同时也可以通过修改和扩展代码,研究不同调度策略的性能差异。对于操作系统、内存管理和Java编程的...

    操作系统进程调度(java)

    然后,调度器会根据所选择的调度策略,对这些进程进行排序,并按照一定的规则分配CPU时间。 `JCB.java`文件可能代表“Job Control Block”(作业控制块),这是一个数据结构,用于存储与进程相关的重要信息,如进程...

    电梯调度算法(java实现)

    在这个Java实现中,我们将深入探讨电梯调度算法的基本原理、常见策略以及如何在Java编程环境中进行模拟。 电梯调度算法的核心目标是有效地服务楼层数字上的请求,以减少乘客的等待时间和电梯的移动距离。这个过程...

    java任务调度工具

    这些工具允许开发者定义任务的执行周期、依赖关系,并提供了灵活的调度策略。 Quartz是一款强大的开源作业调度框架,支持集群和多种持久化策略。开发者可以通过API创建Job类,定义任务逻辑,然后通过Scheduler来...

    java 进程调度算法模拟

    这个话题源于操作系统原理,但在Java环境中,我们可以通过编程实现对进程调度的模拟,以便理解和掌握不同的调度策略。在这个压缩包文件中,可能包含的是一个Java项目,用于演示和学习这些算法。 在操作系统中,进程...

    java 实现调度器

    在Java编程语言中,实现调度器是一个常见的任务,它涉及到定时执行特定的代码段或任务。这通常是通过Java中的`java.util.Timer`类或者`java.util.concurrent.ScheduledExecutorService`来实现的。这两个工具提供了...

    Java模拟操作系统实验之四种进程调度算法实现(FCFS,SJF,RR,HRN)

    在计算机科学领域,操作系统是管理计算机硬件与软件资源的核心程序,而进程调度是操作系统中一个至关重要的组成部分。...在实际项目中,根据具体应用场景选择合适的调度算法至关重要,以确保系统的高效稳定运行。

    java进程调度算法

    在这个Java编程项目中,我们聚焦于通过Applet实现不同的进程调度算法,这是一种在Web浏览器中运行的小型Java程序。 首先,我们需要理解进程调度的基本概念。在多任务操作系统中,多个进程可以并发执行,但CPU的执行...

    进程调度程序 Java

    在实际的Java进程调度程序中,开发者可能需要结合上述机制,根据具体需求选择合适的调度策略。例如,可以创建一个线程池来管理和调度线程,根据任务的优先级或预计运行时间调整线程的执行顺序。同时,为了保证系统的...

    JAVA操作系统实验作业调度图形化模拟程序

    此外,通过查看源代码,学习者还能深入理解JAVA编程语言以及如何在实际项目中应用这些算法。 该程序还暗示了可以扩展到其他调度算法,如短作业优先(SJF)、多级反馈队列(MLFQ)等,这为深入研究和实践提供了可能...

    java版进程调度模拟器

    然后,针对每种调度算法,编写对应的调度策略,比如使用优先级队列实现优先级调度,使用栈或队列实现FCFS和RR等。 此外,为了使模拟更接近真实环境,我们还需要考虑以下因素: - 进程的创建和销毁:模拟进程的生命...

    操作系统调度算法java源代码

    在Java实现中,这可能涉及维护一个动态更新的进程列表,根据预测的执行时间排序,并在空闲时选择最短的进程。 **静态优先级调度算法** 静态优先级调度根据进程创建时预设的优先级来决定执行顺序。每个进程都有一个...

    JAVA定时任务调度

    在Java中,我们可以使用多种方式来实现定时任务,如Java内置的`java.util.Timer`类、`java.util.concurrent.ScheduledExecutorService`,以及更强大的第三方库如Quartz Scheduler和Spring框架中的`@Scheduled`注解等...

Global site tag (gtag.js) - Google Analytics