精华内容
下载资源
问答
  • 2020-04-15 17:38:14

    一、Crontab

    1.概述

    crontab是一个命令,用于设置周期性被执行的指令。该命令从标准输入设备读取指令,并将其存放于“crontab”文件中,以供之后读取和执行。用户所建立的crontab文件中,每一行代表一项任务,每行的每个字段代表一项设置,共分六个字段,前五段是时间设定段,第六段是要执行的命令段
    在这里插入图片描述

    # For details see man 4 crontabs
    # Example of job definition:
    # .---------------- minute (0 - 59)
    # | .------------- hour (0 - 23)
    # | | .---------- day of month (1 - 31)
    # | | | .------- month (1 - 12) OR jan,feb,mar,apr ...
    
    更多相关内容
  • 常用工作流调度工具 第二章:Azkaban工作流调度系统 1.Azkaban的起源及其发展 2.Azkaban分布式架构原理 3.Azkaban中的工作流概念详解 第三章:Azkaban企业级多模式部署 1.Azkaban版本及三种部署模式 2....
  • 常用ETL任务调度框架组件

    千次阅读 2018-06-05 20:17:00
    1. Cron-like Scheduler1.1 Python任务调度框架 APScheduler一个基于Python,提供类似Cron功能,并深受Java Quartz 影响的轻量级进程内任务调度框架。Advanced Python Scheduler (APScheduler) is a light but ...

    1. Cron-like Scheduler

    1.1 Python任务调度框架 APScheduler

    一个基于Python,提供类似Cron功能,并深受Java Quartz 影响的轻量级进程内任务调度框架。

    Advanced Python Scheduler (APScheduler) is a light but powerful in-process task scheduler that lets you schedule jobs (functions or any python callables) to be executed at times of your choosing.

    This can be a far better alternative to externally run cron scripts for long-running applications (e.g. web applications), as it is platform neutral and can directly access your application's variables and functions.

    The development of APScheduler was heavily influenced by theQuartz task scheduler written in Java. APScheduler provides most of the major features that Quartz does, but it also provides features not present in Quartz (such as multiple job stores).

    https://pypi.python.org/pypi/APScheduler/


    1.2 任务调度框架 cron4j

    cron4j 是一个Java的任务调度框架,类似于UNIX系统下的crontab.

    使用示例:

    import it.sauronsoftware.cron4j.Scheduler;
    
    public class TestScheduler {
    	public static void main(String[] args) throws Throwable {
    		Scheduler scheduler = new Scheduler();
    		scheduler.schedule("* * * * *", new HelloWorldTask());
    		scheduler.start();
    		Thread.sleep(300000); // pause the main thread for 5 minutes
    		scheduler.stop();
    	}
    }

    http://www.sauronsoftware.it/projects/cron4j/manual.php


    1.3 conclusion:

    (1). not web-based application

    (2). need to program

    (3). just only scheduler


    2. Gearman分布式远程过程处理框架

    2.1Outline

    Gearmand 是 Gearman 的作业服务器组件,Gearman是一个分发任务的程序框架,可以用在各种场合,与Hadoop相 比,Gearman更偏向于任务分发功能。它的 任务分布非常 简单,简单得可以只需要用脚本即可完成。Gearman最初用于LiveJournal的图片resize功能,由于图片resize需要消耗大量计算资 源,因此需要调度到后端多台服务器执行,完成任务之后返回前端再呈现到界面。

    作业调度服务器 Gearmand


    2.2 Features

    Open Source - It's free! (in both meanings of the word) Gearman has an active open source community that is easy to get involved with if you need help or want to contribute.

    Multi-language - There are interfaces for a number of languages, and this list is growing. You also have the option to write heterogeneous applications with clients submitting work in one language and workers performing that work in another.

    Flexible - You are not tied to any specific design pattern. You can quickly put together distributed applications using any model you choose, one of those options being Map/Reduce.

    Fast Gearman has a simple protocol and interface with a new optimized server in C to minimize your application overhead.

    Embeddable - Since Gearman is fast and lightweight, it is great for applications of all sizes. It is also easy to introduce into existing applications with minimal overhead.

    No single point of failure Gearman can not only help scale systems, but can do it in a fault tolerant way.

     http://gearman.org/


    3 ETL open-source Scheduler: TASKCTL

    TASKCTL开源版作为目前唯一的ETL调度领域开源软件,保证100% free,绝无黑盒代码。它志在促进该领域的独立发展,使调度在ETL领域独立化、专业化、系统化。从而使项目实施更轻松便捷,使企业基础架构更清晰、更易管理。

    (一)主要适用环境

        操作系统:aix/linux/unix等(由于采用标准c语言构建,理论上可应用与各种主流unix系列)

        项目规模:适用于中小型ETL项目

        ETL工具环境:TASKCTL由于采用任务插件驱动机制,因此,可支持各种存储过程、各种脚本、以及诸如Datastage\Informatica\kettle等各种ETL工具任务。

     

    (二)主要功能

        核心调度功能:主要可以完成串行、并行、依赖、互斥、执行计划、定时、容错、循环、条件分支、远程、负载均衡、自定义条件等各种不同的核心调度功能。

        扩展功能

            网络扩展:可实现单机部署、多服务部署、远程代理部署、集群部署等多种网络部署

            应用扩展:技术平台设计有专门的应用API接口,可实现更多的调度应用。

            任务类型扩展:为了适应不同类型的任务调度,平台可通过具有统一模版、统一接口的插件进行快速扩展。

        应用功能:配置功能、流程设计功能、监控功能、各种查询功能以及诸如重跑、重置等人工干预功能。

     

    (三) 主要创新

        无数据库设计:国内首款专业无数据库调度技术平台。

        插件机制:业界唯一通过具有统一应用接口的插件来扩展任务类型的技术平台。

        流程设计代码开发设计理念:调度领域唯一通过文本代码设计流程的调度技术平台。具有语法代码特征的文本代码设计与传统记录表格对话框方式相比,操作更方便、设计更灵活、可读性更强。



    http://www.taskctl.com/

    展开全文
  • 详解BI系统中的任务调度

    千次阅读 2022-03-31 13:43:52
    任务调度是操作系统的重要组成部分,Windows系统中的定时任务和Linux的Crontab都是常用的系统级调度器,被广泛应用于各种定时执行程序的场景。在传统商业智能BI领域,系统的调度器也经常被作为ETL作业的调度器。作业...

    任务调度是一个通用的计算机概念,可以简单地理解为计算机基于一定时间频率,自动执行一项进程任务。任务调度是操作系统的重要组成部分,Windows系统中的定时任务和Linux的Crontab都是常用的系统级调度器,被广泛应用于各种定时执行程序的场景。在传统商业智能BI领域,系统的调度器也经常被作为ETL作业的调度器。作业任务会通过T+1或者更高的时间频率进行调度执行。

    随着商业智能BI技术的发展,BI工具的调度功能也有了长足的发展。特别是伴随着大数据和实时数据的市场需求,处理能力更强、多线程作业,准实时调度等场景的应用越来越普遍。

    具体到商业智能BI工具的调度功能,目前,主要可以概括为两类:

    1. 数据抽取的任务调度
    2. 通知、消息的任务调度

    一、数据抽取的任务调度

    商业智能工具的一大应用场景就是打破数据孤岛,将分布在不同系统中的异构数据进行整合,并抽取到数据仓库,形成分析模型,为可视化分析提供数据支撑。对于大数据量的历史数据分析,抽取基本采用的就是定时调度机制。从数据源到数据仓库,可以配置增量更新或者全量更新。

    全量更新一般采用的机制是先Truncate Table,再进行Insert操作。增量更新则是基于主键列或者时间戳,只更新满足条件的数据。无论哪种方式,都是通过设置不同时间频率的定时调度任务来执行的。

    任务的频率也是和前述两种更新方式密切相关的。对于实时性要求不高的数据,可以通过设置T+1来进行全量更新。对于频率相对较高的数据,可以设置以小时、分钟甚至秒级的频率来进行调度增量更新。

    具体的调度频率要根据数据量、服务器配置,同时考虑对数据源系统的压力来综合考虑。

    以Wyn为例,在数据接入方式上同时支持直连模型和抽取模型。对于抽取模型,可以设置调度运行计划。自动重载计划会在设定的时间自动刷新模型中的数据。

    用户可以根据不同的业务需求制定不同的执行计划,以不同频率重载表中的缓存数据。若计划执行失败,会向填写的邮箱发送一封邮件通知。若成功,则没有提示。

    创建自动定时的运行计划,设定后运行计划会周期性的自动刷新数据。

    商业智能BI工具在任务计划设置上,也会考虑到其复用性。提供通过模板创建运行计划功能。运行计划可以手动或自动执行。运行计划的调度执行是数据抽取成功的重要技术保障。

    二、通知、消息的任务调度

    在商业智能的任务调度场景中,不仅要将数据抽取到数仓集中存储。对于报表、仪表板等分析结果,也需要支持定时推送功能。并不是每个报表数据的查看者都方面直接登录系统查看数据。例如,出差路上,或者遗忘时,通过定时推送功能,可以主动地将分析结果呈现给数据的使用者。在企业实践中,邮件推送是最常用的方式之一。

    以Wyn为例,在任务计划模板中,可以使用邮件推送功能。发送对象支持邮件和邮件组。在运行报表运行计划时,不仅仅支持将报表作为邮件附件或链接的形式发送至目标邮箱,也支持将报表作为邮件正文,这样会更加方便用户查看。

    将报表作为邮件正文显示的关键在于,在设置运行计划时,将导出格式设置为"HTML"或"Image"。而后,发送方式选择邮件通知时,"发送类型"中才可以选择"在邮件正文中显示报表"。

    综上所述,任务调度作为商业智能工具的普遍需求,已经被广泛应用,为数据抽取提供了有效的支撑。随着软件开发技术的发展和市场需求的变化,数据实时性更高的分析场景将越来越多。但是,大数据量历史数据分析的场景也会一直存在。因此,可以预见的是,在未来一段时间内,基于任务调度的抽取模型和基于流式的、实时推送模型、直连数据源的直连模型将并存,并共同为企业的数据分析提供重要的技术支撑。

    展开全文
  • Quartz:任务调度实现原理

    千次阅读 2018-12-03 08:29:45
    Quartz是一个完全由Java编写的开源作业调度框架,为在Java应用程序中进行作业调度提供了简单却强大的机制。 Quartz允许开发人员根据时间间隔来调度作业。 它实现了作业和触发器的多对多的关系,还能把多个作业与...

    什么是Quartz

    Quartz是一个完全由Java编写的开源作业调度框架,为在Java应用程序中进行作业调度提供了简单却强大的机制。

    Quartz允许开发人员根据时间间隔来调度作业。

    它实现了作业和触发器的多对多的关系,还能把多个作业与不同的触发器关联。简单地创建一个org.quarz.Job接口的Java类。

    Quartz的特点

    作为一个优秀的开源调度框架,Quartz 具有以下特点:

    ① 强大的调度功能,例如支持丰富多样的调度方法,可以满足各种常规及特殊需求;

    ② 灵活的应用方式,例如支持任务和调度的多种组合方式,支持调度数据的多种存储方式;

    ③ 分布式和集群能力,Terracotta 收购后在原来功能基础上作了进一步提升。

    ④ Quartz 很容易与 Spring 集成实现灵活可配置的调度功能。

     

    Quartz专用词汇说明

    下面是本文中用到的一些专用词汇,在此声明:

    scheduler任务调度器

    trigger触发器,用于定义任务调度时间规则

    job任务,即被调度的任务

    misfire错过的,指本来应该被执行但实际没有被执行的任务调度

     

    Quartz任务调度基本实现原理:

    Quartz任务调度的核心元素为:Scheduler——任务调度器、Trigger——触发器、Job——任务。

    其中trigger和job是任务调度的元数据,scheduler是实际执行调度的控制器。

    Trigger

    • 是用于定义调度时间的元素,即按照什么时间规则去执行任务。
    • Quartz中主要提供了四种类型的trigger:SimpleTrigger,CronTirgger,DateIntervalTrigger,和NthIncludedDayTrigger。
    • 这四种trigger可以满足企业应用中的绝大部分需求。

    Job

    • 用于表示被调度的任务。
    • 主要有两种类型的job:无状态的(stateless)和有状态的(stateful)
    • 对于同一个trigger来说,有状态的job不能被并行执行,只有上一次触发的任务被执行完之后,才能触发下一次执行。
    • Job主要有两种属性:volatility和durability,其中volatility表示任务是否被持久化到数据库存储,而durability表示在没有trigger关联的时候任务是否被保留。两者都是在值为true的时候任务被持久化或保留。
    • 一个job可以被多个trigger关联,但是一个trigger只能关联一个job

    Scheduler

    • scheduler由scheduler工厂创建:DirectSchedulerFactory或者StdSchedulerFactory。
    • StdSchedulerFactory使用较多,因为DirectSchedulerFactory使用起来不够方便,需要作许多详细的手工编码设置。
    • Scheduler主要有三种:RemoteMBeanScheduler,RemoteScheduler和StdScheduler。StdScheduler 为最常用。

    Quartz 线程视图

      在Quartz中,有两类线程,Scheduler调度线程和任务执行线程,其中任务执行线程通常使用一个线程池维护一组线程。

     

    Scheduler调度线程主要有两个:执行常规调度的线程,和执行misfiredtrigger的线程。

    常规调度线程:轮询存储的所有trigger,如果有需要触发的trigger,即到达了下一次触发的时间,则从任务执行线程池获取一个空闲线程,执行与该trigger关联的任务。

    Misfire线程:是扫描所有的trigger,查看是否有misfiredtrigger,如果有的话根据misfire的策略分别处理(fire now OR wait for the next fire)。

     

    Quartz Job数据存储

    Quartz中的trigger和job需要存储下来才能被使用。

    Quartz中有两种存储方式:RAMJobStore,JobStoreSupport。

    RAMJobStore是将trigger和job存储在内存中,而JobStoreSupport是基于jdbc将trigger和job存储到数据库中。

    RAMJobStore的存取速度非常快,但是由于其在系统被停止后所有的数据都会丢失,所以在集群应用中,必须使用JobStoreSupport。

    任务调度器调度的时序:

     

    在这里将几个重要的类调用的过程以序列图的形式展现出来,上半部分展现的是启动过程,下半部分展现的是任务调度的过程。

    步骤1.用户首先需要生成一个调度器工厂SchedulerFactory,可以用下面的方式实现自己的定制化:

    Properties properties=new Properties();    
    properties.put("org.quartz.threadPool.class","org.quartz.simpl.SimpleThreadPool");
    properties.put("org.quartz.threadPool.threadCount","10");
    SchedulerFactory sf=new StdSchedulerFactory(properties);

    步骤2.然后通过getScheduler()方法从调度器工厂里得到调度器实例,首先查找有没有这样的调度器,没有的话,就生成一个,有的话直接返回。所以得到的一般是单例,即默认的调度器。

    步骤3.Scheduler有一个QuartzSchedulerThread(Thread的子类)属性,在scheduler实例化的时候,实例化了一个对象,并用ThreadExecutor启动该线程对象。该线程就是调度线程,主要任务就是不停的从JobStore中获取即将被触发的触发器(默认30s调度一次)。在这个时候调度线程虽然启动,但是处于pause状态。

    步骤4.接下来是任务调度的部分:

    Scheduler scheduler=sf.getScheduler();
    scheduler.addJobListener(new TaskListener());
    scheduler.scheduleJob(jobDetail, simpleTrigger);
    scheduler.start();

    client通过scheduleJob()方法将任务和触发器存储在JobStore中,通过start()方法将QuartzSchedulerThread的pause状态设为false,通知调度线程执行任务,此后调度线程不停的从JobStore中去取即将触发的任务。

     

    任务执行的时序:

     

    上半部分展现的是任务执行之前准备工作的时序,下半部分展现的是任务执行的时序。

    步骤1.调度线程首先去线程池中获取可用的线程,如果没有的话,就阻塞。

    步骤2.从JobStore(从存储介质中获取触发器,存储介质可以是内存也可以是数据库)获取(接下来30s内的)触发器,然后等待该触发器触发。

    步骤3.调度线程创建一个JobRunShell(就是一个Runnable),然后从线程池中调用线程执行该任务。

    接下来就是任务执行的时序:

    步骤4.获取trigger、JobDetail以及生成Job实例,然后执行job的execute接口函数。

     

    持久化的任务的执行时序:

     

    以上就是Quartz的基本工作流程。

    参考来源:https://www.cnblogs.com/zhangchengzhangtuo/p/5705672.html

    展开全文
  • J2EE企业级定时调度

    2016-05-16 13:36:19
    企业级定时调度常用的有3种: JDK自带的并发框架 ...调度方式: JDK自带的并发框架 ScheduledExecutorService scheduler = Executors.newSingleThreadScheduledExecutor( ); scheduler.scheduleAtFixedRat
  • Quartz任务调度(详细)

    千次阅读 2021-07-15 15:25:05
    Quartz任务调度 一、Quartz概念 Quartz是OpenSymphony开源组织在Job scheduling领域又一个开源项目,它可以与J2EE与J2SE应用程序相结合,也可以单独使用。...Quartz调度框架包含许多企业级的特性,如JTA事务、
  • DR负载均衡群集部署)企业调度器LVS(Linux Virtual Server)集群和分布式1.1 集群 Cluster1.2 分布式系统1.3 集群和分布式1.4 集群设计原则1.5 集群设计实现1.5.1 基础设施层面1.5.2 业务层面1.6 LB Cluster 负载...
  • 车间调度相关理论

    2021-09-16 00:13:04
    1柔性作业车间调度问题的研究现状 “柔性”是相对于“刚性”而言的,传统的==“刚性”自动化生产线主要实现单一品种的大批量生产==。而==“柔性”生产线可以在较短的生产周期内,生产出较低成本、较高质量的不同...
  • 数仓学习——DolphinScheduler任务调度工具前言一、DolphinScheduler简介1.DolphinScheduler概述2.DolphinScheduler组件3.DolphinScheduler核心架构二、DolphinScheduler部署说明1.软硬件环境要求1.1 操作系统版本...
  • 对于单台的AGV的搬运很简单,对于多台AGV如何合理的安排,使其工作效率达到最高,这就需要用到AGV调度系统。AGV调度系统一旦为AGV指定好路径后,AGV上的车载控制器会根据指令完成具体的运动控制任务,例如速度保持在...
  • 课程分享——Kubernetes、K8s企业运维实战(2021年新版本V1.20)视频教程,完整版,附源码和文档下载。 课程大纲: 第1章 Kubernetes 概述 第2章 二进制方式搭建一个完整的K8s集群(最新v1.20版本) 第3章 kubeadm...
  • 各种调度框架介绍

    万次阅读 2017-03-01 15:25:57
    任务调度工具 Myriad Myriad Myriad把YARN和Mesos两者的优势结合起来。通过使用Myriad项目,让Mesos和YARN可以协作,你可以完成一个实时业务。数据分析可以在运行生产服务的相同硬件上执行。... 上次更新: ...
  • 本文首先综述了流水车间调度的研究现状,对车间调度进行了描述和分类,分析了流水车间调度的特点,建立了柔性流水车间调度的数学模型,简要介绍了求解流水车间调度问题常用的方法;其次对遗传算法进行了概述,详细...
  • 抢占式与非抢占式调度算法

    千次阅读 2018-01-16 18:54:00
    2019独角兽企业重金招聘Python工程师标准>>> ...
  • 进程调度概念及基本策略 引言:多进程并发是逻辑并发,在单个CPU上,实际上任意时刻只能有一个进程处于执行状态,而其它进程处于非执行状态。那么进程是如何调度的呢?本篇笔记将依次介绍进程调度概念、调度目标、...
  • 基于 Quartz 开发企业级任务调度应用

    千次阅读 2016-08-01 17:45:03
    Quartz 是 OpenSymphony 开源组织在任务调度领域的一个开源项目,完全基于 Java 实现。作为一个优秀的开源调度框架,Quartz 具有功能强大,应用灵活,易于集成的特点。本文剖析了 Quartz 框架内部的基本实现原理,...
  • 开源 调度工具 azkaban 调度工具 处理有依赖关系的复杂任务调度,只支持mysql存储基本信息 常用调度工具之一 开源 crontab linux自带调度工具 简单任务调度 适用日常少量调度 开源 ooize 调度工具 处理复杂任务调度...
  • 二、车间调度简介 1 车间调度定义 车间调度是指根据产品制造的合理需求分配加工车间顺序,从而达到合理利用产品制造资源、提高企业经济效益的目的。车间调度问题从数学上可以描述为有n个待加工的零件要在m台机器上...
  • 文章目录一、概述1)什么是任务调度?2)常见任务调度工具3)什么是Azkaban二、Azkaban 与 Oozie 对比三、Azkaban 运行模式及架构1)Azkaban Web Server2)Azkaban Executor Server3)关系型元数据库(MySQL)四、...
  • 美团集群调度系统的云原生实践

    千次阅读 2022-02-18 00:26:52
    总第487篇2022年 第004篇本文介绍了美团在如何解决大规模集群管理的难题、设计优秀且合理的集群调度系统方面的实践,阐述了美团在落地以Kubernetes为代表的云原生技术时,比较关心...
  • 点击下方公众号「关注」和「星标」回复“1024”获取独家整理的学习资料!音频Airtime - Airtime 是一款用于调度和远程站点管理的开放广播软件Ardour - 在 Linux ...
  • 第四章 分布式任务调度笔记

    千次阅读 2019-11-29 23:09:26
    一、任务调度的基本...Quartz是开源任务调度框架中的翘首,是java业务界事实上的任务调度标准。 Quartz提供了强大任务调度机制,而且使用简单。Quartz允许开发人员灵活地定义触发器的调度时间表,并可以对触发器...
  • 定时任务的分布调度

    千次阅读 2017-10-09 11:47:23
    单机定式任务调度的问题 在很多应用系统中我们常常要定时执行一些任务。比如,订单系统的超时状态判断、缓存...常见的处理方式有线程的while(true) 和sleep组合、使用Timer定时器触发任务又或者是使用quartz框
  • 而不夸张地说,基于AccessToken的授权、认证方式在现如今微服务、分布式时代系统与系统在通信期间最为常用的“授权方式”了,可想而知,掌握其中的流程思想是多么的重要!   以下为本门课程的部分截图(右键...
  • Spark的调度执行过程

    千次阅读 2022-01-22 13:22:42
    企业常用的SparkOnYarn的cluster模式为例,解释Spark的调度执行过程:
  • 调度

    千次阅读 2017-07-04 17:49:36
    简介: Quartz 是 OpenSymphony ...本文剖析了 Quartz 框架内部的基本实现原理,通过一些具体实例描述了应用 Quartz 开发应用程序的基本方法,并对企业应用中常见的问题及解决方案进行了讨论。 Quartz 基本概念及原理
  • 集群系统中的单个计算机通常称为节点,通常通过局域网连接,但也有其它的可能连接方式。集群计算机通常用来改进单个计算机的计算速度和/或可靠性。一般情况下集群计算机比单个计算机,比如工作站或超级计算机性能...
  • 现在分布式下任务调度有很多解决方案,可以基于Quartz开发任务管理平台,也可以使用开源的任务调度平台,行业常用成熟调度框架如下: TBSchedule TBSchedule可以将调度作业从业务系统中分离出来,降低或者是消除和...
  • Quartz就是一个基于Java实现的任务调度框架,用于执行你想要执行的任何任务。 Quartz是OpenSymphony开源组织在Job scheduling(定时调度)领域的开源项目,它可以与J2EE和J2SE应用程序相结合也可以单独使用。 Quartz...

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 44,103
精华内容 17,641
关键字:

企业常用的调度方式