`
rcfalcon
  • 浏览: 228553 次
  • 性别: Icon_minigender_1
  • 来自: 北京
社区版块
存档分类
最新评论

一个简单的集群任务调度框架

 
阅读更多

说到服务器集群后台的任务调度,这可能是很多网站或者计算集中型方案经常使用到的。

本文不讨论map/reduce级别的任务拆分和调度,本文设计的调度框架只满足以下几点特性:


1)轻量级,代码框架及实现原理非常简单,容易部署

2)集群可扩展,理论上集群机器数量,以及每台机器上的执行任务数都可扩展

3)业务单元化,业务定义的下发任务是具体的、可颗粒化的,本框架不辅助做任务或工作流的拆分,只接受最细颗粒化的任务


实现原理:

1)所有计算节点(这里指一个程序实例)均地位平等

2)任务以一个文件的形式存在,计算节点通过共享文件系统去“抢”任务。

3)所有的计算节点均永久存在,不断的扫描任务文件

4)业务系统下发任务,即直接生成一个文件


我们将计算节点定义为worker,那么worker的主逻辑如下


While(true){

If(find(以前未完成的任务文件)||find(任务文件)){

将该文件增加扩展名+本机ip.实例号

处理任务

将任务文件迁移到finish目录

}

}


以下为python的实现,供参考。



用到的filelocker跨平台文件锁




workerbase使用样例



分享到:
评论

相关推荐

    分布式任务调度框架 集合

    LTS是一个轻量级分布式任务调度框架。有三种角色, JobClient, JobTracker, TaskTracker。 4. uncode-schedule 基于zookeeper+spring task的分布式任务调度组件,非常小巧,无需任何修改就可以使spring task具备...

    任务调度开源框架Quartz

    Quartz是一款广泛应用于Java环境中的开源任务调度框架,它提供了高度可配置的作业调度系统,使得开发者能够轻松地在应用程序中实现定时任务的管理。Quartz的核心特性包括但不限于以下几点: 1. **灵活的调度**:...

    分布式任务调度框架elastic-job-lite

    分布式任务调度框架Elastic-Job-Lite是当当网推出的一款轻量级无中心化任务调度解决方案,旨在解决大规模分布式环境下的任务调度问题。这款框架的设计理念是将任务的执行与调度分离,使得任务调度器无需关注具体的...

    利用Quartz实现任务调度的集群

    【Quartz任务调度集群】是Java开发中解决定时任务需求的一种高效方案,它由OpenSymphony团队开发,自2001年...总之,Quartz为Java开发者提供了一个强大且易用的任务调度框架,使得构建可靠的定时任务系统变得更加便捷。

    集中式集群资源调度框架的可扩展性优化.docx

    集中式集群资源调度框架是大数据时代应对海量数据处理的关键技术之一。随着数据量的爆炸性增长,单机处理能力已无法满足需求,分布式文件系统如Hadoop的HDFS应运而生,通过主从架构将数据分散存储在多台机器上,形成...

    Quartz.NET是一个开源的作业调度框架

    总的来说,Quartz.NET是一个功能强大、灵活且可靠的作业调度框架,对于需要在C#应用程序中实现自动化任务调度的开发者来说,是一个不可或缺的工具。通过深入学习和熟练掌握Quartz.NET,开发者可以有效地提升工作效率...

    Quartz一个开源的作业调度框架

    Quartz是一个广泛应用于企业级应用中的开源作业调度框架,它为开发者提供了强大的任务调度功能,使得应用程序能够在预定的时间执行特定的任务。Quartz的核心设计目标是简单易用且可高度扩展,能够满足从小型项目到...

    基于Quartz.Net 的任务调度计划框架

    Quartz.Net是一个强大的开源任务调度框架,用于在.NET环境中创建和执行定时任务。它提供了灵活的调度机制,允许开发者在应用程序中定义复杂的作业执行规则,从而实现自动化的工作流程。Quartz.NET不仅支持简单的定时...

    Java任务调度框架Quartz教程实例

    ### Java任务调度框架...综上所述,Quartz是一个强大且灵活的任务调度框架,它不仅可以满足基础的定时任务需求,还能处理复杂多变的任务调度场景。无论是个人开发者还是企业级项目,都可以从Quartz的强大功能中获益。

    XXL-JOB是一个轻量级分布式任务调度框架

    - 6、一致性:“调度中心”通过DB锁保证集群分布式调度的一致性, 一次任务调度只会触发一次执行; - 7、自定义任务参数:支持在线配置调度任务入参,即时生效; - 8、调度线程池:调度系统多线程触发调度运行,确保...

    Quartz一个开源作业调度框架

    Quartz 是一个强大的开源作业调度框架,主要用于自动化执行任务,如定时发送邮件、执行数据清理、执行批处理等。该框架完全用 Java 编写,兼容 J2SE 和 J2EE 环境,提供了丰富的功能和灵活性,使得开发者能够方便地...

    Quartz任务调度框架简介

    Quartz是一个开源的作业调度框架,它用于在Java应用程序中实现复杂的定时任务。Quartz的主要功能是安排作业(Job)在特定的时间点执行,这些作业可以是任何实现了Quartz接口的任务,比如数据处理、文件传输、邮件...

    分布式任务调度

    XXL-JOB是一个专为此目的设计的轻量级分布式任务调度框架。它以其快速的开发速度、简单的学习曲线、轻量级的架构和易于扩展性为特点,已经广泛应用于各种线上产品线。 XXL-JOB的核心概念包括以下几个方面: 1. **...

    一个高可用的,专门针对定时任务的分布式任务调度框架-niubi-job.zip

    niubi-job是一个专门为定时任务设计的高可用分布式任务调度框架,它旨在解决在大型分布式系统中管理和执行定时任务的问题。这个框架提供了丰富的功能和优秀的扩展性,使得在复杂的企业级应用环境中,能够轻松地实现...

    java任务调度工具

    elastic-job是滴滴开源的一款分布式任务调度框架,它结合了Quartz的调度能力和Zookeeper的分布式协调能力,可以方便地实现任务的分片和故障转移,适合大规模分布式环境下的任务调度。 回到这个项目,它提供的任务...

    定时器 任务调度器 定时器 任务调度器

    Quartz是Java平台上广泛使用的一个开源任务调度框架,它提供了一种灵活的方式来创建、调度和执行定时任务。Quartz支持 cron 表达式,可以方便地配置任务的执行时间和频率,同时还支持任务集群,能够在分布式环境中...

    Java任务调度框架Quartz1.8.6教程实例源代码

    Java任务调度框架Quartz是Java开发中用于自动化任务执行的重要工具,特别适用于企业级应用和服务。Quartz 1.8.6是该框架的一个稳定版本,提供了强大的定时任务管理和执行能力。下面我们将深入探讨Quartz的基本概念、...

    java定时任务调度框架(csdn)————程序.pdf

    总结,Java定时任务调度框架提供了多种选择,从简单的`Timer`到功能丰富的Quartz,可以根据项目需求选择合适的实现方式。同时,理解背后的基础算法,如小顶堆和时间轮,有助于优化任务调度的性能和设计。

    任务调度器实例

    本实例聚焦于"Quartz"任务调度器,这是一种广泛应用的开源Java任务调度框架,适用于企业级应用。 Quartz是一个高度灵活的作业调度库,它为开发人员提供了在Java应用程序中创建、调度和执行作业的能力。Quartz的核心...

    quartz开源作业调度框架

    Quartz是一个功能强大的、开源的作业调度框架,完全由Java编写而成。它能够被应用在服务器端的Java应用程序中,帮助开发者轻松地创建并管理定时任务。Quartz支持多种复杂的触发规则,并且具有高度的灵活性和可扩展性...

Global site tag (gtag.js) - Google Analytics