CN105468682A - 一种事件调度系统 - Google Patents

一种事件调度系统 Download PDF

Info

Publication number
CN105468682A
CN105468682A CN201510784168.0A CN201510784168A CN105468682A CN 105468682 A CN105468682 A CN 105468682A CN 201510784168 A CN201510784168 A CN 201510784168A CN 105468682 A CN105468682 A CN 105468682A
Authority
CN
China
Prior art keywords
event
file
arrival event
file arrival
instantiation
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Granted
Application number
CN201510784168.0A
Other languages
English (en)
Other versions
CN105468682B (zh
Inventor
赖海滨
陈守当
王彬
陈铭新
翁世清
钟华强
林华兵
蓝宗玉
林本礼
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
China Construction Bank Corp
Original Assignee
China Construction Bank Corp
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by China Construction Bank Corp filed Critical China Construction Bank Corp
Priority to CN201510784168.0A priority Critical patent/CN105468682B/zh
Publication of CN105468682A publication Critical patent/CN105468682A/zh
Application granted granted Critical
Publication of CN105468682B publication Critical patent/CN105468682B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/20Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
    • G06F16/24Querying
    • G06F16/245Query processing
    • G06F16/2455Query execution
    • G06F16/24568Data stream processing; Continuous queries
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/20Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
    • G06F16/25Integrating or interfacing systems involving database management systems
    • G06F16/254Extract, transform and load [ETL] procedures, e.g. ETL data flows in data warehouses

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Databases & Information Systems (AREA)
  • Data Mining & Analysis (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Computational Linguistics (AREA)
  • Information Retrieval, Db Structures And Fs Structures Therefor (AREA)

Abstract

本申请公开了一种事件调度系统,包括文件传输组件、事件管理组件及调度服务器,文件传输组件在监控到外部系统传入文件时,通过后触发方式向事件管理组件发送文件到达事件,事件管理组件查询文件到达事件对应的作业流是否完成了实例化,并根据查询结果决定进行作业流的实例化或文件到达事件的发送,调度服务器在收到文件到达事件后,将该事件对应的已经实例化的工作流调起执行。在本申请中,外部系统利用文件传输组件进行文件输入时,文件传输组件通过后触发方式向事件管理组件发送文件到达事件,进而指导事件管理组件进行作业流的实例化操作或文件到达事件的发送,不需要利用轮询方式查找作业输入条件是否到达,因此节省了系统资源消耗。

Description

一种事件调度系统
技术领域
本申请涉及事件调度技术领域,更具体地说,涉及一种事件调度系统。
背景技术
ETL作业在经过抽取、转换、加载三个步骤之后,数据从源系统被加载到目标系统中。在银行业务系统中,每天都有大批量的数据需要完成ETL处理。具体来讲,这些数据的加载都需要通过相应的ETL作业来完成。因此,就需要一个调度系统适时调起这些作业。
ETL作业只有在输入条件具备的情况下才满足被调起的条件。输入条件一般为文本文件到达或者所依赖的其它作业执行完毕。因此,如何高效地判断ETL作业的输入条件是否到达以及适时触发作业流完成实例化成为调度系统完成作业调度的关键。现有实现方案中,作业的输入条件一般全部转换为指定格式的文本文件,进而采用轮询的机制来判断输入条件十分具备,也即每隔一定时间扫描相关文本文件,能够扫描到相关文本文件则代表该文本文件对应的作业流满足调度条件,进而执行调度任务。
但是,现有通过轮询查找文本文件来判断作业输入条件是否到达的方式,需要耗费较多的系统资源。
发明内容
有鉴于此,本申请提供了一种事件调度系统,用于解决现有轮询查找文本文件来判断作业输入条件是否到达的方式,需要耗费较多的系统资源的问题。
为了实现上述目的,现提出的方案如下:
一种事件调度系统,包括:文件传输组件、事件管理组件、调度服务器,其中,
所述文件传输组件在监控到外部系统传入文件时,通过后触发方式向所述事件管理组件发送文件到达事件;
所述事件管理组件在收到所述文件到达事件时,查询与所述文件到达事件对应的作业流是否完成了实例化,若是,则将所述文件到达事件发送至所述调度服务器,若否,则调用预置的与所述文件到达事件对应的实例化配置文件,对所述作业流进行实例化操作,并在实例化完成后将所述文件到达事件发送至所述调度服务器;
所述调度服务器在收到所述文件到达事件时,对与所述文件到达事件对应的作业流进行调度运行。
优选地,所述事件管理组件包括事件管理组件客户端和事件管理组件服务端,其中,
所述事件管理组件客户端用于,接收所述文件传输组件发送的文件到达事件,并将文件到达事件发送给所述事件管理组件服务端;
所述事件管理组件服务端用于,在收到文件到达事件时,查询与文件到达事件对应的作业流是否完成了实例化,若是,则将文件到达事件发送至所述调度服务器,若否,则调用预置的与文件到达事件对应的实例化配置文件,对与文件到达事件对应的作业流进行实例化操作,并在实例化完成后将文件到达事件发送至所述调度服务器。
优选地,所述事件管理组件客户端和所述事件管理组件服务端的个数均为多个,其中,
每个事件管理组件客户端在接收到文件传输组件发送的文件到达事件时,在由多个事件管理组件服务端的地址组成的地址列表中随机选择一个地址,并将文件到达事件发送至该地址对应的事件管理组件服务端。
优选地,所述事件管理组件客户端在向某个事件管理组件服务端发送文件到达事件失败后,从所述地址列表中选择其它的地址,向该地址对应的事件管理组件服务端发送文件到达事件。
优选地,所述事件管理组件服务端包括事件接收进程、事件处理进程和事件发送进程,其中,
所述事件接收进程用于,根据与所述事件管理组件客户端之间的连接套接字,接收文件到达事件,并对文件到达事件进行识别,然后将其写入消息队列;
所述事件处理进程用于,从所述消息队列中获取文件到达事件,查询与文件到达事件对应的作业流是否完成了实例化,若是,则将文件到达事件写入条件队列,若否,则调用预置的与文件到达事件对应的实例化配置文件,对所述作业流进行实例化操作,并在实例化完成后将文件到达事件写入所述条件队列;
所述事件发送进程用于,从所述条件队列中取出文件到达事件,将文件到达事件发送至所述调度服务器。
优选地,所述事件接收进程、所述事件处理进程和所述事件发送进程各自均包含若干个子进程。
优选地,所述文件到达事件由结构体各字段信息组成,包括事件类型字段信息及其它字段信息;
所述事件接收进程在接收到文件到达事件时,对文件到达事件进行解析,得到文件到达事件的事件类型,查询预置的事件类型与动作函数间对应关系,确定与文件到达事件的事件类型对应的动作函数,将确定的动作函数、文件到达事件的编号以及用户设定的该文件到达事件的动作类型标识一同写入所述消息队列中,其中所述文件到达事件的编号用于供事件处理进程查找对应的文件到达事件。
优选地,所述事件处理进程包括若干个具备编号的事件处理子进程,这些子进程构成一个进程组,其中,
第一编号的事件处理子进程用于,从所述消息队列中获取文件到达事件的编号、动作类型标识及动作函数,判断所述动作类型标识是否为文件传输类型,若是,则调用所述动作函数,将所述文件到达事件写入条件队列;
第二编号的事件处理子进程用于,从所述消息队列中获取文件到达事件,判断文件到达事件所对应的作业流是否已经完成实例化,若是,则对该文件到达事件进行实例化标记,并将其放入消息队列中;
第三编号的事件处理子进程用于,从消息队列中取出具备实例化标记的文件到达事件,将其写入条件队列中;
第四编号的事件处理子进程用于,从消息队列中取出任意的文件到达事件,查询与获取的文件到达事件对应的作业流是否完成了实例化,若是,则将获取的文件到达事件写入条件队列,若否,则利用与文件到达事件对应的实例化配置文件,对获取的文件到达事件所对应的作业流进行实例化操作,并在实例化完成后将获取的文件到达事件写入所述条件队列。
优选地,所述事件发送进程从所述条件队列中取出文件到达事件,并在取出的文件到达事件的个数累积达到阈值时,将取出的所有文件到达事件共同发送至所述调度服务器。
优选地,所述事件管理组件服务端还包括事件扫描进程;
所述事件扫描进程用于定时查找库中符合预置条件的作业流,将其写入消息队列,由事件处理进程进行处理。
从上述的技术方案可以看出,本申请实施例提供的事件调度系统包括文件传输组件、事件管理组件及调度服务器,其中,文件传输组件在监控到外部系统传入文件时,通过后触发方式向事件管理组件发送文件到达事件,事件管理组件查询文件到达事件对应的作业流是否完成了实例化,若是,则将文件到达事件发送至调度服务器,以供调度服务器利用文件到达事件对实例化后的作业流进行调起执行,若否,则调用预置的与文件到达事件对应的实例化配置文件,对文件到达事件对应的作业流进行实例化操作,完成后再将文件到达事件发送至调度服务器。本申请的事件调度系统,外部系统利用文件传输组件进行文件输入时,文件传输组件通过后触发方式向事件管理组件发送文件到达事件,进而指导事件管理组件进行作业流的实例化操作或文件到达事件的发送,本申请不需要利用轮询方式查找作业输入条件是否到达,因此节省了系统资源消耗。
附图说明
为了更清楚地说明本申请实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本申请的实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据提供的附图获得其他的附图。
图1为本申请实施例公开的一种事件调度系统结构示意图;
图2为本申请实施例公开的另一种事件调度系统结构示意图;
图3为本申请实施例公开的一种事件管理组件结构示意图;
图4为本申请实施例公开的另一种事件管理组件结构示意图;
图5为本申请实施例公开的一种事件管理组件服务端结构示意图;
图6为本申请实施例公开的另一种事件管理组件服务端结构示意图。
具体实施方式
下面将结合本申请实施例中的附图,对本申请实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本申请一部分实施例,而不是全部的实施例。基于本申请中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本申请保护的范围。
参见图1,图1为本申请实施例公开的一种事件调度系统结构示意图。
如图1所示,该系统包括:
文件传输组件11、事件管理组件12、调度服务器13,其中,
所述文件传输组件11在监控到外部系统100传入文件时,通过后触发方式向所述事件管理组件12发送文件到达事件;
其中,文件到达事件具体与外部系统传入的文件相关,根据传入的文件的文件名不同,文件到达事件也不同。文件到达事件可以看作一个数据包,其中包含文件到达事件的编号、事件类型等信息。
所述事件管理组件12在收到所述文件到达事件时,查询与所述文件到达事件对应的作业流是否完成了实例化,若是,则将所述文件到达事件发送至所述调度服务器13,若否,则调用预置的与所述文件到达事件对应的实例化配置文件,对所述作业流进行实例化操作,并在实例化完成后将所述文件到达事件发送至所述调度服务器13;
具体地,事件管理组件12中可以预存文件到达事件与作业流间的对应关系,在收到文件传输组件11发送的文件到达事件时,查询对应关系,确定对应的作业流,进而判断作业流是否完成了实例化操作。在作业流已经完成了实例化操作时,将文件到达事件作为作业流的输入条件发送给调度服务器,由调度服务器调起执行作业流。
所述调度服务器13在收到所述文件到达事件时,对与所述文件到达事件对应的作业流进行调度运行。
本申请实施例提供的事件调度系统包括文件传输组件、事件管理组件及调度服务器,其中,文件传输组件在监控到外部系统传入文件时,通过后触发方式向事件管理组件发送文件到达事件,事件管理组件查询文件到达事件对应的作业流是否完成了实例化,若是,则将文件到达事件发送至调度服务器,以供调度服务器利用文件到达事件对实例化后的作业流进行调起执行,若否,则调用预置的与文件到达事件对应的实例化配置文件,对文件到达事件对应的作业流进行实例化操作,完成后再将文件到达事件发送至调度服务器。本申请的事件调度系统,外部系统利用文件传输组件进行文件输入时,文件传输组件通过后触发方式向事件管理组件发送文件到达事件,进而指导事件管理组件进行作业流的实例化操作或文件到达事件的发送,本申请不需要利用轮询方式查找作业输入条件是否到达,因此节省了系统资源消耗。
可选的,可以在调度服务器上设置事件接收端,由事件接收端与事件管理组件进行通讯。
进一步可选的,事件管理组件12在接收文件传输组件11发送的外部文件到达事件的基础上,还可以进一步接收内部事件,参见图2。
在图2中,该系统进一步包括作业运行组件14,作业运行组件统一封装了要执行的具体作业,在作业运行组件运行完毕之后,将其对应的作业完成事件发送给事件管理组件12,事件管理组件12在收到该事件之后,对依赖于该特定作业的作业所在的作业流进行实例化操作(若该作业流已完成实例化,则直接进行条件的发送)。这里需要说明的是,某些作业之间具备依赖关系,一个作业的运行必须基于另一个作业的完成,本申请的作业运行组件14即将依赖的作业的完成事件发送给事件管理组件12,由事件管理组件12启动相应作业流的实例化操作。
在本申请的另一个实施例中,介绍了事件管理组件的一种可选结构,参照图3。图3为本申请实施例公开的一种事件管理组件结构示意图。
如图3所示,事件管理组件12包括:
事件管理组件客户端121和事件管理组件服务端122,其中,
所述事件管理组件客户端121用于,接收所述文件传输组件发送的文件到达事件,并将文件到达事件发送给所述事件管理组件服务端122;
所述事件管理组件服务端122用于,在收到文件到达事件时,查询与文件到达事件对应的作业流是否完成了实例化,若是,则将文件到达事件发送至所述调度服务器13,若否,则调用预置的与文件到达事件对应的实例化配置文件,对与文件到达事件对应的作业流进行实例化操作,并在实例化完成后将文件到达事件发送至所述调度服务器13。
可选的,事件管理组件客户端在与服务端通讯失败之后,可以将该事件以文本的形式保存在指定目录,后续通过扫描脚本进行补发。
可选的,上述事件管理组件客户端121和事件管理组件服务端122的个数均为多个,如图4所示。
为了避免单点故障,并且考虑到事件数量较多时,容易产生客户端与服务端通信失败的情况,因此本实施例采用集群部署方式,在单个调度环境内部署多个事件管理组件客户端121和多个事件管理组件服务端122。
事件管理组件客户端121的主要特点如下:
1、在一个调度环境中,客户端121在接收到文件传输组件11发送的文件到达事件时,在由多个事件管理组件服务端122的地址组成的地址列表中随机选择一个地址,将文件到达事件发送至该地址对应的事件管理组件服务端122。
2、为了提高执行效率,可以将由多个事件管理组件服务端122的地址组成的地址列表存储在每个事件管理组件客户端121中。
3、事件管理组件客户端121在向某个事件管理组件服务端122发送文件到达事件失败后,从所述地址列表中选择剩余的其它的地址,向该地址对应的事件管理组件服务端122发送文件到达事件,直至成功发送该文件到达事件为止。
4、事件管理组件客户端121在地址列表中选择地址时采用随机种子策略,不对各台事件管理组件服务端122的负载进行判断,提高发送效率。
接下来,介绍事件管理组件服务端122。
参见图5,图5为本申请实施例公开的一种事件管理组件服务端结构示意图。
如图5所示,事件管理组件服务端122包括:
事件接收进程1221、事件处理进程1222和事件发送进程1223,其中,
所述事件接收进程1221用于,根据与所述事件管理组件客户端121之间的连接套接字,接收文件到达事件,并对文件到达事件进行识别,然后将其写入消息队列;
所述事件处理进程1222用于,从所述消息队列中获取文件到达事件,查询与文件到达事件对应的作业流是否完成了实例化,若是,则将文件到达事件写入条件队列,若否,则调用预置的与文件到达事件对应的实例化配置文件,对所述作业流进行实例化操作,并在实例化完成后将文件到达事件写入所述条件队列;
所述事件发送进程1223用于,从所述条件队列中取出文件到达事件,将文件到达事件发送至所述调度服务器。
上述实施例中,各个进程之间基于队列进行通讯,也即事件接收进程将事件写入消息队列,事件处理进行从消息队列中读取事件进行处理,然后将事件写入条件队列,事件发送进行从条件队列中读取事件进行处理。
可选的,对于事件接收进程1221、事件处理进程1222和事件发送进程1223,各自均可以包含若干个子进程,也即每种进程均由一组进程组构成,采取多进程共同服务的进程池模式,例如事件接收进程1221是一组进程,组内各个子进程均进行事件的获取、识别与写入消息队列的工作。
进一步,对于同个进程组内的各个子进程之间,可以采用共享内存进行IPC通讯,并利用信号量实现互斥操作。
接下来,本申请分别对上述所述的事件接收进程1221、事件处理进程1222和事件发送进程1223进行详细介绍。
首先,介绍事件接收进程1221。
在介绍事件接收进程之前,先对文件到达事件进行解释。文件到达事件为由结构体各字段信息组成的数据包,其包括事件类型字段信息及其它字段信息,例如事件所属作业、作业流等。
接收进程1221在接收到事件管理组件客户端121发送的文件到达事件数据包时,对文件到达事件进行解析,得到文件到达事件的事件类型。查询预置的事件类型与动作函数间对应关系,确定与文件到达事件的事件类型对应的动作函数,将确定的动作函数、文件到达事件的编号以及用户设定的该文件到达事件的动作类型标识一同写入所述消息队列中,其中所述文件到达事件的编号用于供事件处理进程查找对应的文件到达事件。
进一步,对事件处理进程1222进行介绍。
对于事件处理进程1222,其包含多个子进程,这些子进程构成一个进程组,我们可以预先对多个子进程进行编号分类,编号分为四类,分别为第一编号的事件处理子进程、第二编号的事件处理子进程、第三编号的事件处理子进程和第四编号的事件处理子进程。其中:
第一编号的事件处理子进程用于,从所述消息队列中获取文件到达事件的编号、动作类型标识及动作函数,判断所述动作类型标识是否为文件传输类型,若是,则调用所述动作函数,将所述文件到达事件写入条件队列;
这里需要说明的是,操作系统对消息队列中的文件到达事件设置有数据结构msgbuf,该数据结构中包含mtype字段,该字段的值可以由用户进行设定。因此,用户可以通过该字段设置文件到达事件的动作类型标识,例如设置mtype值为1代表该文件到达事件只需要进行文件传输,不需要进行任何处理。
第二编号的事件处理子进程用于,从所述消息队列中获取文件到达事件,判断文件到达事件所对应的作业流是否已经完成实例化,若是,则对该文件到达事件进行实例化标记,并将其放入消息队列中;
这里,实例化标记可以是对mtype字段的值进行设定。
第三编号的事件处理子进程用于,从消息队列中取出具备实例化标记的文件到达事件,将其写入条件队列中;
第四编号的事件处理子进程用于,从消息队列中取出任意的文件到达事件,查询与获取的文件到达事件对应的作业流是否完成了实例化,若是,则将获取的文件到达事件写入条件队列,若否,则利用与文件到达事件对应的实例化配置文件,对获取的文件到达事件所对应的作业流进行实例化操作,并在实例化完成后将获取的文件到达事件写入所述条件队列。
上述实例中我们将多个事件处理子进程进行功能分类,避免同一时间所有子进程均进行作业流的实例化操作,造成系统繁忙。
当然,上述对事件处理子进程进行功能分类的方式仅仅是一种可选方式,除此之外还可以按照其它方式进行划分,对此本申请不进行限定。
再进一步,对上述事件发送进程1223进行介绍。
所述事件发送进程1223从所述条件队列中取出文件到达事件,并在取出的文件到达事件的个数累积达到阈值时,将取出的所有文件到达事件共同发送至所述调度服务器13。
事件发送进程的上述工作逻辑能够减少和调度服务器13之间的连接开销,提高发送效率。
进一步,如果事件发送进程在一定时间内从条件队列中取出的文件到达事件的数量未达到阈值,则可以选择将该时间段内取出的所有文件到达事件共同发送至调度服务器。
在本申请的又一个实施例中,介绍上述事件管理组件服务端的又一种结构,参见图6。
如图6所示,事件管理组件服务端122还可以包括:
事件扫描进程1224;
所述事件扫描进程1224用于定时查找库中符合预置条件的作业流,将其写入消息队列,由事件处理进程进行处理。
这里需要解释的是,库中的某些作业流可能是不需要外部传入的文件作为调度条件的,对于此类作业流,由事件扫描进程1224定时扫描,并将符合预置条件的作业流转交给事件处理进程1222进行实例化处理。
在文件最后,总结一下本申请方案的特点。
第一,事件管理组件服务端各类进程的设计采用多进程共同服务的进程池模式,且在功能上主要区分为接收进程、处理进程、发送进程、扫描进程;
第二,事件管理组件客户端与服务端之间采用TCP/IP协议进行通讯,且具备失败重试机制,且两者之间的连接为短连接,即在连接结束之后即释放连接;
第三,事件管理组件服务端各类进程的数目设置为经验值,在系统启动的时候读入;
第四,事件管理组件服务端的事件发送进程在给调度服务器发送条件的时候,采用批量发送的方式进行发送,减少事件管理组件与调度服务器的通讯开销,提高发送效率;
第五,事件管理组件客户端在与服务端通讯失败之后,可以将该事件以文本的形式保存在指定目录,后续通过扫描脚本进行补发;
第六,事件管理组件服务端的事件处理进程根据进程编号进行功能上的细分,即不同的进程从消息队列中取出不同类型的事件进行处理;
第七,事件类型与实例化配置文件配置在一张固定的库表中,因而在增加新的事件类型时,只需要增加相应的实例化配置文件,即可实现动态扩展能力;
第八,事件管理组件服务端与调度服务器可以不进行直接的通讯,而是通过调度服务器上的事件接收端进行中转。
最后,还需要说明的是,在本文中,诸如第一和第二等之类的关系术语仅仅用来将一个实体或者操作与另一个实体或操作区分开来,而不一定要求或者暗示这些实体或操作之间存在任何这种实际的关系或者顺序。而且,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、物品或者设备不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、物品或者设备所固有的要素。在没有更多限制的情况下,由语句“包括一个……”限定的要素,并不排除在包括所述要素的过程、方法、物品或者设备中还存在另外的相同要素。
本说明书中各个实施例采用递进的方式描述,每个实施例重点说明的都是与其他实施例的不同之处,各个实施例之间相同相似部分互相参见即可。
对所公开的实施例的上述说明,使本领域专业技术人员能够实现或使用本申请。对这些实施例的多种修改对本领域的专业技术人员来说将是显而易见的,本文中所定义的一般原理可以在不脱离本申请的精神或范围的情况下,在其它实施例中实现。因此,本申请将不会被限制于本文所示的这些实施例,而是要符合与本文所公开的原理和新颖特点相一致的最宽的范围。

Claims (10)

1.一种事件调度系统,其特征在于,包括:文件传输组件、事件管理组件、调度服务器,其中,
所述文件传输组件在监控到外部系统传入文件时,通过后触发方式向所述事件管理组件发送文件到达事件;
所述事件管理组件在收到所述文件到达事件时,查询与所述文件到达事件对应的作业流是否完成了实例化,若是,则将所述文件到达事件发送至所述调度服务器,若否,则调用预置的与所述文件到达事件对应的实例化配置文件,对所述作业流进行实例化操作,并在实例化完成后将所述文件到达事件发送至所述调度服务器;
所述调度服务器在收到所述文件到达事件时,对与所述文件到达事件对应的作业流进行调度运行。
2.根据权利要求1所述的系统,其特征在于,所述事件管理组件包括事件管理组件客户端和事件管理组件服务端,其中,
所述事件管理组件客户端用于,接收所述文件传输组件发送的文件到达事件,并将文件到达事件发送给所述事件管理组件服务端;
所述事件管理组件服务端用于,在收到文件到达事件时,查询与文件到达事件对应的作业流是否完成了实例化,若是,则将文件到达事件发送至所述调度服务器,若否,则调用预置的与文件到达事件对应的实例化配置文件,对与文件到达事件对应的作业流进行实例化操作,并在实例化完成后将文件到达事件发送至所述调度服务器。
3.根据权利要求2所述的系统,其特征在于,所述事件管理组件客户端和所述事件管理组件服务端的个数均为多个,其中,
每个事件管理组件客户端在接收到文件传输组件发送的文件到达事件时,在由多个事件管理组件服务端的地址组成的地址列表中随机选择一个地址,并将文件到达事件发送至该地址对应的事件管理组件服务端。
4.根据权利要求3所述的系统,其特征在于,所述事件管理组件客户端在向某个事件管理组件服务端发送文件到达事件失败后,从所述地址列表中选择其它的地址,向该地址对应的事件管理组件服务端发送文件到达事件。
5.根据权利要求2所述的系统,其特征在于,所述事件管理组件服务端包括事件接收进程、事件处理进程和事件发送进程,其中,
所述事件接收进程用于,根据与所述事件管理组件客户端之间的连接套接字,接收文件到达事件,并对文件到达事件进行识别,然后将其写入消息队列;
所述事件处理进程用于,从所述消息队列中获取文件到达事件,查询与文件到达事件对应的作业流是否完成了实例化,若是,则将文件到达事件写入条件队列,若否,则调用预置的与文件到达事件对应的实例化配置文件,对所述作业流进行实例化操作,并在实例化完成后将文件到达事件写入所述条件队列;
所述事件发送进程用于,从所述条件队列中取出文件到达事件,将文件到达事件发送至所述调度服务器。
6.根据权利要求5所述的系统,其特征在于,所述事件接收进程、所述事件处理进程和所述事件发送进程各自均包含若干个子进程。
7.根据权利要求5所述的系统,其特征在于,所述文件到达事件由结构体各字段信息组成,包括事件类型字段信息及其它字段信息;
所述事件接收进程在接收到文件到达事件时,对文件到达事件进行解析,得到文件到达事件的事件类型,查询预置的事件类型与动作函数间对应关系,确定与文件到达事件的事件类型对应的动作函数,将确定的动作函数、文件到达事件的编号以及用户设定的该文件到达事件的动作类型标识一同写入所述消息队列中,其中所述文件到达事件的编号用于供事件处理进程查找对应的文件到达事件。
8.根据权利要求7所述的系统,其特征在于,所述事件处理进程包括若干个具备编号的事件处理子进程,这些子进程构成一个进程组,其中,
第一编号的事件处理子进程用于,从所述消息队列中获取文件到达事件的编号、动作类型标识及动作函数,判断所述动作类型标识是否为文件传输类型,若是,则调用所述动作函数,将所述文件到达事件写入条件队列;
第二编号的事件处理子进程用于,从所述消息队列中获取文件到达事件,判断文件到达事件所对应的作业流是否已经完成实例化,若是,则对该文件到达事件进行实例化标记,并将其放入消息队列中;
第三编号的事件处理子进程用于,从消息队列中取出具备实例化标记的文件到达事件,将其写入条件队列中;
第四编号的事件处理子进程用于,从消息队列中取出任意的文件到达事件,查询与获取的文件到达事件对应的作业流是否完成了实例化,若是,则将获取的文件到达事件写入条件队列,若否,则利用与文件到达事件对应的实例化配置文件,对获取的文件到达事件所对应的作业流进行实例化操作,并在实例化完成后将获取的文件到达事件写入所述条件队列。
9.根据权利要求5所述的系统,其特征在于,所述事件发送进程从所述条件队列中取出文件到达事件,并在取出的文件到达事件的个数累积达到阈值时,将取出的所有文件到达事件共同发送至所述调度服务器。
10.根据权利要求5所述的系统,其特征在于,所述事件管理组件服务端还包括事件扫描进程;
所述事件扫描进程用于定时查找库中符合预置条件的作业流,将其写入消息队列,由事件处理进程进行处理。
CN201510784168.0A 2015-11-16 2015-11-16 一种事件调度系统 Active CN105468682B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN201510784168.0A CN105468682B (zh) 2015-11-16 2015-11-16 一种事件调度系统

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN201510784168.0A CN105468682B (zh) 2015-11-16 2015-11-16 一种事件调度系统

Publications (2)

Publication Number Publication Date
CN105468682A true CN105468682A (zh) 2016-04-06
CN105468682B CN105468682B (zh) 2018-12-14

Family

ID=55606383

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201510784168.0A Active CN105468682B (zh) 2015-11-16 2015-11-16 一种事件调度系统

Country Status (1)

Country Link
CN (1) CN105468682B (zh)

Cited By (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN107844340A (zh) * 2017-11-15 2018-03-27 中国银行股份有限公司 一种数据采集和文件下传的方法及系统
CN110825535A (zh) * 2019-10-12 2020-02-21 中国建设银行股份有限公司 一种作业调度的方法和系统
CN111930814A (zh) * 2020-05-29 2020-11-13 武汉达梦数据库有限公司 一种基于etl系统的文件事件的调度方法和etl系统
CN112200534A (zh) * 2020-09-24 2021-01-08 中国建设银行股份有限公司 一种用于时间事件管理的方法和装置
CN114240382A (zh) * 2021-12-21 2022-03-25 中国建设银行股份有限公司 基于结构化流程模板的流程实例生成方法及装置

Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN101216782A (zh) * 2007-12-29 2008-07-09 中国建设银行股份有限公司 一种金融数据实现etl加工的方法和系统
CN102722355A (zh) * 2012-06-04 2012-10-10 南京中兴软创科技股份有限公司 基于工作流机制的并发式etl转换方法
US20130145371A1 (en) * 2011-12-01 2013-06-06 Sap Ag Batch processing of business objects
CN104166590A (zh) * 2013-05-20 2014-11-26 阿里巴巴集团控股有限公司 一种实现任务调度的方法及系统

Patent Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN101216782A (zh) * 2007-12-29 2008-07-09 中国建设银行股份有限公司 一种金融数据实现etl加工的方法和系统
US20130145371A1 (en) * 2011-12-01 2013-06-06 Sap Ag Batch processing of business objects
CN102722355A (zh) * 2012-06-04 2012-10-10 南京中兴软创科技股份有限公司 基于工作流机制的并发式etl转换方法
CN104166590A (zh) * 2013-05-20 2014-11-26 阿里巴巴集团控股有限公司 一种实现任务调度的方法及系统

Non-Patent Citations (1)

* Cited by examiner, † Cited by third party
Title
阮文娟: "商务智能ETL过程优化及质量控制在航空预警中的应用研究", 《中国优秀硕士学位论文全文数据库 基础科技辑》 *

Cited By (8)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN107844340A (zh) * 2017-11-15 2018-03-27 中国银行股份有限公司 一种数据采集和文件下传的方法及系统
CN107844340B (zh) * 2017-11-15 2021-01-22 中国银行股份有限公司 一种数据采集和文件下传的方法及系统
CN110825535A (zh) * 2019-10-12 2020-02-21 中国建设银行股份有限公司 一种作业调度的方法和系统
CN110825535B (zh) * 2019-10-12 2022-06-28 中国建设银行股份有限公司 一种作业调度的方法和系统
CN111930814A (zh) * 2020-05-29 2020-11-13 武汉达梦数据库有限公司 一种基于etl系统的文件事件的调度方法和etl系统
CN111930814B (zh) * 2020-05-29 2024-02-27 武汉达梦数据库股份有限公司 一种基于etl系统的文件事件的调度方法和etl系统
CN112200534A (zh) * 2020-09-24 2021-01-08 中国建设银行股份有限公司 一种用于时间事件管理的方法和装置
CN114240382A (zh) * 2021-12-21 2022-03-25 中国建设银行股份有限公司 基于结构化流程模板的流程实例生成方法及装置

Also Published As

Publication number Publication date
CN105468682B (zh) 2018-12-14

Similar Documents

Publication Publication Date Title
CN105468682A (zh) 一种事件调度系统
CN108920261B (zh) 一种适于大规模并行数据处理任务的两级自适应调度方法
CN103197968B (zh) 一种融合同步异步特点的线程池处理方法及系统
CA2200929C (en) Periodic process scheduling method
CN102662725B (zh) 一种事件驱动的高并发流程虚拟机实现方法
CN102469064B (zh) 通信实现方法及通信设备
CN105610972A (zh) 集群式的任务调派系统
CN110134534B (zh) 基于nio针对大数据分布式系统进行消息处理优化的系统及方法
CN102455940B (zh) 一种定时器和异步事件的处理方法及系统
CN108280150A (zh) 一种分布式异步业务分发方法及系统
CN101853182A (zh) 基于数据库的任务执行方法及装置
CN104253850A (zh) 一种任务分布式调度方法和系统
CN109062681A (zh) 一种周期性循环任务的执行方法、系统、装置及存储介质
CN103873523A (zh) 客户端集群访问方法及装置
CN101141742A (zh) 一种终端的应用通信方法
WO2023071769A1 (zh) 机器人调度方法、装置、电子设备和存储介质
CN100334834C (zh) 一种代理服务器系统及其实现代理通讯的方法
CN102340734A (zh) 定位应用管理方法及装置
CN101561767B (zh) 一种基于操作系统的任务执行方法和装置
CN105049372A (zh) 一种扩展消息中间件吞吐量的方法及系统
CN100525211C (zh) 一种在网元管理系统中实现集中调度的系统
CN112019452B (zh) 一种业务需求的处理方法、系统及相关装置
CN113626213A (zh) 一种事件处理方法、装置、设备及计算机可读存储介质
CN103678488A (zh) 分布式大批量动态任务引擎及采用其处理数据的方法
CN101155370B (zh) 一种移动通讯系统多流应用中事务的串行处理方法及系统

Legal Events

Date Code Title Description
C06 Publication
PB01 Publication
C10 Entry into substantive examination
SE01 Entry into force of request for substantive examination
GR01 Patent grant
GR01 Patent grant