CN102393822B - 批量调度***及方法 - Google Patents
批量调度***及方法 Download PDFInfo
- Publication number
- CN102393822B CN102393822B CN201110391457.6A CN201110391457A CN102393822B CN 102393822 B CN102393822 B CN 102393822B CN 201110391457 A CN201110391457 A CN 201110391457A CN 102393822 B CN102393822 B CN 102393822B
- Authority
- CN
- China
- Prior art keywords
- task
- processing
- unit
- tasks
- channel
- 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.)
- Active
Links
Images
Landscapes
- Management, Administration, Business Operations System, And Electronic Commerce (AREA)
Abstract
本发明公开了一种批量调度***,包括:参数设置装置,用户通过该装置设置***参数和任务处理相关参数,并将设置的参数存储到数据存储装置中;预处理装置,用于对批量任务进行预处理,并将处理后产生的任务输出到数据存储装置中;调度引擎装置,用于定时侦测***当前并发处理任务量,计算***可分配的处理各渠道上送批量任务的线程数,并将结果输出给任务处理装置;任务处理装置,用于接收从调度引擎装置传输过来的批量任务处理线程数,调整内部线程,根据任务优先次序参数,读取经过预处理后的任务,进行任务处理。通过该***,可以提高处理批量任务的效率,提高***稳定性。
Description
技术领域
本发明涉及批量数据处理技术领域,具体涉及一种提升运算处理效率、有效利用***资源实现批量处理的***及方法。
背景技术
在大型的在线交易***中,总是存在大量的批量作业。一般而言,批量作业的处理模式主要有两种:
一是采取联机实时处理的方式,也就是常说的联机小批量。该种方法时效性很高,但是联机小批量方式在以联机方式处理批量任务时,并不判断数据处理***的忙闲,实时上送实时处理,由于批量任务中任务密集度高,将迅速占用大量的***资源,给***带来极大的压力,导致整个***处理速度降低,甚至存在宕机风险;而且批量任务处理一般会集中使用某一个或某几个用户数据,所用用户数据被长时间锁住,使得客户的在线联机任务需要等待数据锁定的解除,导致影响客户联机任务。
另外一种批量任务处理方式是采取按照场次定时处理的方式,一般安排在业务量较小的固定时段按照批量场次集中处理,如早晨、中午、晚间等。
对于该种方式,传统上是将批量中不同数据加工、统计任务按照固定的顺序依次执行,每增加一个新的处理需求,就编写一个新的任务,加在后面,或者干脆直接修改某一任务的处理程序,增加新的处理代码。同时,为了提高资源的使用率,对于每个任务,按照数据分区条件(如地区、国家、产品分类等)并发执行。但是固定的任务顺序会因个别任务导致执行时间过长,或因为一个任务出错影响整个批量执行;而分区划分也比较固定,各分区执行时间长短差距较大,执行中存在等待,时间资源、***资源得不到充分利用。针对传统处理方式,专利号为ZL200610126976.9、发明名称为“一种批量任务调度引擎和调度方法”提出了一种调度方法:对当前场次的批量任务进行静态特征分析,以获得用参数表示的各个任务的单体特征和任务之间的依赖关系;基于各个任务之间的依赖关系对任务进行分组;根据各个任务的权值,计算各组任务的组权值,其中组权值确定主调度顺序;根据分区权值,确定组内各分区的调度顺序的副调度顺序;基于所述主调度顺序和所述副调度顺序,形成当前场次的批量任务的调度策略;以及利用所述调度策略,执行当前场次的批量任务的调度。通过该方法,使批量处理任务实现任务、分区两维度并发,对固定时段的批量场次内时间资源和硬件资源集约化利用,提升了批量处理的灵活性、可维护性和容错能力。
但是该专利的方法仍是将批量任务安排在固定时段的批量场次中执行,存在如下不足:首先是处理不及时,很难满足时效性要求较高的业务要求。此外,随着批量任务的迅速增加,在固定时段内已很难或无法完成当天的全部批量任务;与之相对应的,在非批量场次的时段内,***资源有时存在空闲,并没有得到充分利用。如果可以打破固定时段批量场次,不仅可以大幅增加批量处理时间,还可以使数据处理***资源得到充分利用。
发明内容
为了克服现有技术的上述问题,本发明提出了一种批量调度***和方法。
本发明的批量调度***包括:参数设置装置,用户通过该装置设置***参数和任务处理相关参数,并将设置的参数存储到数据存储装置中,其中所述***参数包含***最大并发处理任务量和扫描***实时并发任务量的时间间隔,所述任务处理参数包括:任务预处理参数,用于决定所述***对接收到的不同渠道上送的批量任务,按照任务类型进行的预处理方式;任务优先次序参数,用于决定不同任务类型间的处理顺序;预处理装置,用于对批量任务进行预处理,并将处理后产生的任务输出到数据存储装置中,其进一步包括:批量任务接收单元(301),负责从数据存储装置(600)的参数存储单元(601)中读取任务优先次序参数,根据优先次序从数据存储装置(600)的批量任务存储单元(602)中,读取各渠道提交到所述***中的批量任务,输出给任务预处理单元(303);任务预处理参数读入单元(302),该单元从数据存储装置(600)中读取某一任务类型的预处理参数,输出给任务预处理单元(303);任务预处理单元(303),获取批量任务接收单元(301)输入的批量任务,以及任务预处理参数读入单元(302)输入的该种任务类型的批量任务对应的预处理参数,对批量任务进行排序、汇总处理,将处理后产生的任务输出到数据存储装置(600)的任务存储单元(603)中;调度引擎装置,用于定时侦测***当前并发处理任务量,计算***可分配的处理各渠道上送批量任务的线程数,并将结果输出给任务处理装置;任务处理装置,用于接收从调度引擎装置传输过来的批量任务处理线程数,调整内部线程,根据任务优先次序参数,读取经过预处理后的任务,进行任务处理;数据存储装置,用于接收并存储参数设置装置设置或计算得到的参数、各渠道上送的批量任务以及预处理装置生成的任务和任务处理日志。
其中,上述***还包括任务数据分析装置,用于记录与任务量相关的信息,计算某一时段内的渠道特征值和时点特征值,并将计算结果存储在数据存储装置中。
其中,调度引擎装置根据从数据存储装置中获取***最大并发处理任务量、当前时段的渠道特征值和时点特征值,计算可分配的处理各渠道上送批量任务的线程数。
其中,所述调度引擎装置进一步包括:任务量侦测单元,按照预先设定的时间间隔,定时获取所述***当前并发处理任务量N,输出给调度决策单元,其中N是自然数;调度决策单元,从***参数设置单元读取***最大并发处理任务量M,计算M是否大于N,如果大于,则计算当前时段***能够分配给各渠道上传的批量任务的处理线程数T,其中M和T为自然数。
其中,任务处理装置进一步包括:线程控制单元,将***可分配给各渠道上传的批量任务的处理线程数T与处理任务量N所需的处理线程数进行比较,如果比较结果为T大,则增加线程,并启动应增加的线程,如果T小,则减少线程,并标记多余线程,待其当前任务完成后释放该线程;任务接收单元获取任务优先次序参数,根据优先级高低顺序,读取T条任务;任务处理单元,根据读取顺序处理所述任务。
其中,***可分配给各渠道上传的批量任务的处理线程数T通过以下公式计算:T=(M-N)×Pa×Pb,其中M表示***最大并发处理任务量,N表示***当前并发处理任务量,Pa=SUM(Sa)/SUM(S),Pa表示渠道特征值,是指在历史的某一个时段,某渠道向所述***上送任务量占所述***收到的所有任务量的占比,Sa表示某一天,某一时段内某一渠道提交的任务数,SUM(Sa)表示一年内,所述时段内所述渠道提交的任务总数,S表示某一天,某一时段内所述***收到的全部任务数,SUM(S)表示一年内,所述时段内所述***收到的任务总数,Pb=SUM(Sb)/SUM(S),Pb表示时点特征值,是指在历史的某一个时段,所述***接收到的批量任务在所述***接收到的全部任务中的占比,Sb表示某一天,某一时段内所述***接收的批量任务数,SUM(Sb)表示一年内,所述时段内所述***接收的批量任务总数,S表示所述某一天,某一时段内所述***收到的全部任务数,SUM(S)表示一年内,所述时段内所述***收到的任务总数。
其中,参数设置装置进一步包括:***参数设置单元,用户通过此单元设置所述***最大并发处理任务量M,设置扫描***实时并发任务量的时间间隔,输出到数据存储装置中;任务优先次序参数设置单元,用户通过此单元设置不同任务类型的处理优先级次序,输出到数据存储装置中;任务预处理参数设置单元,用户通过此单元设置所述***在接收到一个批量任务时所需要做的预处理工作,输出到数据存储装置中。
本发明提供的批量调度***和方法,能够充分利用***资源,并且在不影响在线的联机任务请求处理的前提下,全天候处理批量任务,既能满足针对不同业务特点的时效性要求,又能够根据***负载情况动态决定批量处理方式,大大提高了***处理效率,同时有效控制***超负荷的风险。
附图说明
图1为本发明批量调度***结构图;
图2为本发明批量调度***中参数设置装置的结构图;
图3为本发明批量调度***中任务数据分析装置的结构图
图4为本发明批量调度***中预处理装置的结构图;
图5为本发明批量调度***中调度引擎装置的结构图;
图6为本发明批量调度***中任务处理装置的结构图;
图7为本发明批量调度***中存储装置的结构图;
图8为本发明批量调度***对任务预处理流程图;
图9为本发明批量调度***中对线程调度及任务处理的流程图。
具体实施方式
为使本发明的目的、技术方案和优点更加清楚明白,以下结合具体实施例,并参照附图,对本发明进一步详细说明。
本发明提供一种批量数据调度方法和***,根据数据处理***的任务并发量,在***空闲时,控制处理各渠道上送批量任务的线程数,从而达到既充分利用***资源,又不影响在线的联机任务请求处理的及时性;进一步的,批量任务在提交到本***时首先进行账号的排序、账务汇总等预处理工作,以降低***处理的复杂度,提高处理批量任务的效率,从而大大降低数据处理***超负荷运行的风险,提高了***的处理运行效率。
图1为本发明批量调度***结构图。如图1所示,该***包括:参数设置装置100、任务数据分析装置200、预处理装置300、调度引擎装置400、任务处理装置500和数据存储装置600。
其中,参数设置装置100、任务数据分析装置200、预处理装置300、调度引擎装置400、任务处理装置500均与数据存储装置600相连接,调度引擎装置400还连接于任务处理装置500。
参数设置装置100用于用户通过该装置设置***参数和任务处理参数,并将设置好的参数存储到数据存储装置600中。所述***参数包含两个:***最大并发处理任务量和扫描***实时并发任务量的时间间隔。所述任务处理参数包括两类:任务预处理参数,该参数决定了所述***对接收到的不同渠道上送的批量任务,按照任务类型进行的预处理方式;任务优先次序参数,该参数决定了不同任务类型间的处理顺序。所述渠道指与所述***相连接的、受理客户提交的批量或联机任务请求并将任务请求提交给所述***进行任务处理的******或应用,如网上银行、电话银行或自助机具等。所述任务类型指不同种类的任务,如发工资、还贷款、转账汇款和买基金等。
参数设置装置100是***的客户端,可以是一台个人PC,对于B/S(Browser/Server)结构的企业信息***,应安装有浏览器软件,它也可以是其它能够运行浏览器软件的装置,如NC、Windows图形终端等;对于C/S(Client/Server)结构的企业信息***,应安装有该***的客户端软件。另外,它还需要具备显示装置和输入装置,输入装置可以是键盘和鼠标。
任务数据分析装置200是一组软件模块,部署在数据处理***中,用于记录在不同的时段,各渠道、各种任务种类的任务量,并根据一年内的上述数据进行分析,计算某一时段内的渠道特征值和时点特征值,并将计算结果存储在数据存储装置600中。所述渠道特征值,指在历史的某一个时段,某渠道向所述***上送任务量占所述***收到的所有任务量的占比;所述时点特征值,在历史的某一个时段,所述***接收到的批量任务在所述***接收到的全部任务中的占比;所述任务种类包含联机任务和批量任务。
预处理装置300是一组软件模块,一般为避免挤占数据处理***资源,可以单独部署在一台或一组服务器上,用于从数据存储装置600中读取待处理的批量任务、任务预处理参数和业务优先次序参数,对批量任务进行预处理,并将处理后产生的任务输出到数据存储装置600中;
调度引擎装置400是一组软件模块,部署在数据处理***中,用于定时侦测***当前并发处理任务量,从数据存储装置600中获取***最大并发处理任务量、当前时段的渠道特征值和时点特征值,计算可分配的处理各渠道上送批量任务的线程数,并将结果输出给任务处理装置500。
任务处理装置500是一组软件模块,部署在数据处理***中,用于接收从调度引擎装置400传输过来的批量任务处理线程数,调整内部线程,根据任务优先次序参数,读取经过预处理后的任务,进行任务处理,并将处理结果记录到日志中。
数据存储装置600是一台或一组服务器,运行数据库管理***。用于接收并存储参数设置装置100、任务数据分析装置200中设置或计算得到的参数、参数等;以及接收并存储各渠道上送的批量任务,接受并存储预处理装置300生成的任务和任务处理日志。
以上各***模块间对应的物理设备之间,通过企业的局域网通信,可以是以太网(Ethernet),也可以是其它局域网,如光纤分布式数据接口(FDDI)、令牌环(Token-Ring)等。
图2为参数设置装置100结构示意图。参照图2,参数设置装置100包括:***参数设置单元101、任务优先次序参数设置单元102、任务预处理参数设置单元103和时段参数设置单元104。
***参数设置单元101,用户通过此单元设置所述***最大并发处理任务量M,设置扫描***实时并发任务量的时间间隔,输出到数据存储装置600中。其中,M值可使用所述***上运行的、处理时间最长的任务(例如使用B2C支付任务)对所述***进行压力测试,获得所述***可承受的最大并发处理任务量,也就是最大线程数。M实际是在最极端恶劣的情况下,***可支持的最大线程数。任务优先次序参数设置单元102,用户通过此单元设置不同任务类型的处理优先级次序,输出到数据存储装置600中。下面的表格以举例的方式示出了一些任务类型对应的优先次序。
任务类型 | 处理次序 |
发工资 | 1 |
还贷款 | 2 |
转账汇款 | 3 |
买基金 | 4 |
其他 | 5 |
任务预处理参数设置单元103,用户通过此单元设置所述***在接收到一个批量任务时所需要做的预处理工作,输出到数据存储装置600中。下面的表格中以举例的方式示出了对不同任务类型设置不同的预处理方式,其中参数内容可根据实际的任务处理过程进行增加或修改。
任务类型 | 参数内容 |
发工资 | 按付方账号合并付款金额 |
还贷款 | 按付方账号合并付款金额、按入账账号合并入账金额 |
转账汇款 | 按付方账号合并付款金额 |
买基金 | 按付方账号、基金名称合并基金份额 |
其他 | 不处理 |
时段参数设置单元104,通过该单元用户根据所述***的任务处理量在不同日期,不同时间点的起伏、波动特点,设置若干个时段区间。
结合下面的表格,该示例示出了基于某银行网上银行应用交易特点制定,每月1日~9日、11日~19日、21日~31日,交易量较为平稳,其交易种类和特点也相似,其中0:00~7:59、11:59~13:29、17:00~0:00为闲时,设置为一个时段SD1;8:00~11:59、13:30~16:59为忙时,设为一个时段SD2。而10日和20日为代发工资和代缴费日,交易量会出现激增,具体到不同时间点,0:00~7:59、11:59~13:29、18:00~0:00为相对闲时,设为一个时段SD3,8:00~11:59、13:30~17:59为忙时,设为一个时段SD4。这样,共设置如下图所示的4个时段。
如图3所示,图3为任务数据分析装置200结构示意图。包括:记录单元201和计算单元202。
记录单元201,用于实时扫描任务,根据任务的来源渠道、任务种类、时段对任务量进行计数。记录在不同的时段、各渠道、各种任务种类的任务量。每日日终(如23:59)将任务量数据输出到数据存储装置600中。下面的表格是通过记录单元201对信息进行记录的具体示例。
计算单元202,用于在每日日初(如00:01),从数据存储装置600中,获取一年内的任务量数据,通过如下公式,计算当天每一时段的渠道特征值Pa和时点特征值Pb。输出给数据存储装置600的任务信息存储单元604。
公式1:Pa=SUM(Sa)/SUM(S)
Pa表示渠道特征值,在历史的某一个时段,某渠道向所述***上送任务量占所述***收到的所有任务量的占比;Sa表示某一天,某一时段内某一渠道提交的任务数;SUM(Sa)表示一年内,所述时段内所述渠道提交的任务总数;S表示上述某一天,某一时段内所述***收到的全部任务数;SUM(S)表示一年内,所述时段内所述***收到的任务总数。
公式2:Pb=SUM(Sb)/SUM(S)
Pb表示时点特征值,在历史的某一个时段,所述***接收到的批量任务在所述***接收到的全部任务中的占比;Sb表示某一天,某一时段内所述***接收的批量任务数;SUM(Sb)表示一年内,所述时段内所述***接收的批量任务总数;S表示上述某一天,某一时段内所述***收到的全部任务数;SUM(S)表示一年内,所述时段内所述***收到的任务总数。
经过计算,可以得到当天不同时段、不同渠道的渠道特征值和时点特征值。下面的表格是时点特征值表的具体示例。
时段序号 | 任务量比例(批量∶总量) |
SD1 | 1∶2 |
SD2 | 5∶6 |
SD3 | 1∶2 |
SD4 | 1∶11 |
更新并动态获取近一年内的数据,为了使历史数据的分析更准确、更具有参考价值,并对于历史数据的分析应周期性进行。
图4为预处理装置300结构示意图。参照图4,预处理装置300包括:批量任务接收单元301、任务预处理参数读入单元302和任务预处理单元303三部分。其中,批量任务接收单元301与任务预处理单元303连接,任务预处理参数读入单元302与任务预处理单元303连接。
批量任务接收单元301,负责从数据存储装置600的参数存储单元601中读取任务优先次序参数,根据优先次序从数据存储装置600的批量任务存储单元602中,读取各渠道提交到所述***中的批量任务,输出给任务预处理单元303;
任务预处理参数读入单元302,该单元从数据存储装置600中读取某一任务类型的预处理参数,输出给任务预处理单元303;
任务预处理单元303,获取批量任务接收单元301输入的批量任务,以及任务预处理参数读入单元302输入的该种任务类型的批量任务对应的预处理参数,对批量任务进行排序、汇总处理,将处理后产生的任务输出到数据存储装置600的任务存储单元603中。
预处理不受***条件等限制,与线程分配、任务处理等不存在冲突,实时对批量任务进行处理。
图8为任务预处理单元303的预处理流程图。参照图8,在步骤801,批量任务接收单元301读取任务优先次序参数。在步骤802,批量任务接收单元301扫描批量任务存储单元602,判断是否有待处理批量任务。如有,进入步骤803;如无,继续扫描。在步骤803,批量任务接收单元301根据任务优先次序参数,读取优先级高的批量任务,输出给任务预处理单元303。在步骤804,任务预处理参数读入单元302读取预处理参数,输出给任务预处理单元303。在步骤805,任务预处理单元303收到批量任务和预处理参数,对批量任务进行排序、汇总。在步骤806,将预处理结果输出到任务存储单元603中,并记录日志。在步骤807,完成后重复步骤802,扫描批量任务存储单元602,进行下一次处理过程。
下面的表格以举例的方式示出了批量任务存储单元602中的批量任务。
根据任务优先次序参数,先处理“发工资”任务,根据预处理参数“按付方账号合并付款金额”,付方账号均为AcctFrom,进行合并处理,得到:
批次编号 | 明细序号 | 任务类型 | 付方账号 | 转出金额 | 转入账号 | 处理状态 |
100001 | 00001 | 发工资 | AcctFrom | 300-------- | 预处理完成 | |
100001 | 00002 | 发工资-------- | 100 | AcctTo | 预处理完成 | |
100001 | 00003 | 发工资-------- | 200 | AcctTo2 | 预处理完成 |
再处理“还贷款”任务,根据预处理参数“按付方账号合并付款金额、按入账账号合并入账金额”,付方账号均为AcctFrom,收方账号均为AcctTo3。进行合并处理,得到:
最后将结果输入任务存储单元603,完成一个批量任务的预处理。
批次编号 | 明细序号 | 任务类型 | 付方账号 | 转出金额 | 转入账号 | 处理状态 |
100001 | 00001 | 发工资 | AcctFrom | 300-------- | 预处理完成 | |
100001 | 00002 | 发工资-------- | 100 | AcctTo | 预处理完成 | |
100001 | 00003 | 发工资-------- | 200 | AcctTo2 | 预处理完成 | |
100002 | 00001 | 还贷款 | AcctFrom | 900-------- | 预处理完成 | |
100002 | 00002 | 还贷款-------- | 900 | AcctTo3 | 预处理完成 |
图5为调度引擎装置400结构示意图。参照图5,调度引擎装置400包括:***任务量侦测单元401、调度参数读入单元402和调度决策单元403。其中***任务量侦测单元401、调度参数读入单元402分别与调度决策单元403连接。
***任务量侦测单元401,用于以***参数设置单元101中所设置的时间间隔,定时获取所述***当前并发处理任务量,输出给调度决策单元403。
调度参数读入单元402,用于从数据存储装置600的任务信息存储单元604中读取当前时间段的渠道特征值和时点特征值,输出给调度决策单元403。
调度决策单元403,用于获取***任务量侦测单元401输入的当前***并发任务量的值,数据存储装置600中存储的***最大并发处理任务量,以及调度参数读入单元402输入的当前时间段的渠道特征值和时点特征值,代入下面公式3进行运算,得到的***可启用的批量任务处理线程数,输出给任务处理装置500。
公式3:T=(M-N)×Pb×Pa
其中T表示当前时段***可分配的,处理各渠道上传的批量任务的处理线程数;M表示***最大并发处理任务量;N表示***当前并发处理任务量(由***任务量侦测单元401获取);(M-N)表示在保证***正常运行的条件下,***当前可以再承担的任务量;(M-N)×Pb表示虽然***当前可以再承担(M-N)的任务量,但是考虑到***还在不断接收联机和批量任务,为留出余量,应对联机任务的增长,只能启动其中一部分线程来做批量事务处理。所以与时点特征值相乘,结合历史上,当前时段的批量任务占比,增加合理的线程数去处理批量任务。(M-N)×Pb×Pa表示可分配批量线程数再与渠道特征值相乘,就可以结合历史上,各渠道上送任务量的占比,得到处理由该渠道上传的批量任务的线程数。
通过上述公式可动态计算***目前的空闲线程,通过对历史任务数据的分析,计算出本时段各渠道可使用的***资源的最佳方案。
下面通过举例的方式介绍调度决策单元403的工作过程:某***最大并发处理任务量为80,侦测得知当前并发任务量为50,在当前时间所对应的时段SD1,***根据历史值计算时点特征值是0.4,对于网上银行渠道,***根据历史值计算的渠道特征值是0.5,那么当前,***可再处理任务量为80-50,即30;乘以时点特征值0.4,得到***当前可再分配的批量任务线程数为12,而剩余18作为预留;对于网上银行渠道而言,12乘以渠道特征值,得出当前可处理由该网上银行上传的批量任务的线程数为6,剩余的6个线程去处理其他渠道上传的批量任务。
图6为任务处理装置500结构示意图。参照图6,任务处理装置500包括:线程控制单元501、任务接收单元502和任务处理单元503。其中线程控制单元501、任务接收单元502分别与任务处理单元503连接。
线程控制单元501,用于接收调度引擎装置400的调度决策单元403输出的线程数T,并侦测当前批量任务处理线程数,如需增加,则启动应增加的线程;如需减少,则标记多余线程,待其当前任务完成后释放线程。
任务接收单元502,用于从数据存储装置600的参数存储单元601中读取任务优先次序参数,根据优先次序从数据存储装置600的任务存储单元603中,读取预处理后的任务,输出给任务处理单元503;
任务处理单元503,用于对任务进行账务处理,将处理结果记录到日志中。图7为数据存储装置600结构示意图。参照图7,数据存储装置600包括:参数存储单元601、批量任务存储单元602、任务存储单元603、任务信息存储单元604和日志单元605。
参数存储单元601用于保存参数设置装置100设置的数据:***最大任务量参数、扫描***任务量的时间间隔,任务优先次序参数、任务预处理参数。批量任务存储单元602,用于存储其他渠道提交到所述***的批量任务。任务存储单元603,用于存储预处理装置300处理后生成的任务。任务信息存储单元604,用于保存任务数据分析装置200中记录单元201输出每日的任务量;并存储任务数据分析装置200的计算单元202输出当日的渠道特征值、时点特征值表。日志单元605:用于存储***运行、存储预处理、任务处理日志。
基于上面参照图1至图7批量调度***的描述,下面对本发明提供的批量调度方法进行详细描述。
图9为线程调度及任务处理流程图。参照图9,在步骤901,***任务量侦测单元401按照预先设定的时间间隔(即参数存储单元601中存储的扫描***任务量的时间间隔),定时获取所述***当前并发处理任务量N,输出给调度决策单元403。在步骤902,调度决策单元403从***参数设置单元101读取***最大并发处理任务量M。在步骤903,计算M是否大于N,如果大于,表示所述***资源有空闲,可启动线程处理批量任务,则启动步骤904,如小于或等于,所述***资源繁忙,则重复步骤901,继续进行***资源侦测。在步骤904,调度参数读入单元402从任务信息存储单元604中获取当前时段的渠道特征值Pa和时点特征值和Pb,并将结果输出给调度决策单元403。在步骤905,调度决策单元403根据公式T=(M-N)×Pa×Pb,计算当前时段所述***可分配给各渠道上传的批量任务的处理线程数,并将结果输出给线程控制单元501。在步骤906,线程控制单元501侦测当前批量任务处理线程数,并与T比较,如果比较结果为T大,表明需增加线程,则启动应增加的线程,如果T小,表明需减少线程,则标记多余线程,待其当前任务完成后释放线程。在步骤907,任务接收单元502从数据存储装置600中读取任务优先次序参数。在步骤908,任务接收单元502扫描任务存储单元603,判断是否有待处理任务,如果有,则进入步骤909,如果无,则继续扫描。在步骤909,任务接收单元502根据任务优先次序参数,根据优先级高低顺序,读取T条任务。在步骤910,任务处理单元503对任务进行处理(例如财务处理)。在步骤911,记录任务处理结果,释放线程,并返回步骤908。
本发明的实现数据批量处理的***和方法通过动态侦测机制,随时监测***资源,当***压力较小时,分配出部分线程处理批量任务,不必等待固定时间的批量处理场次,提高了批量任务处理的时效性,并使***资源充分利用;当在线并发任务量高,***调用频繁、压力过大时,通过动态侦测机制,控制***的并发线程数,从而实现不会由于批量任务的频繁处理而增加***的负担;通过预处理参数的定制,在本***内对在批量任务提前处理和准备,降低了任务的复杂程度,提高了处理速度。
以上所述的具体实施例,对本发明的目的、技术方案和有益效果进行了进一步详细说明,所应理解的是,以上所述仅为本发明的具体实施例而已,并不用于限制本发明,凡在本发明的精神和原则之内,所做的任何修改、等同替换、改进等,均应包含在本发明的保护范围之内。
Claims (13)
1.一种批量调度***,该***包括:
参数设置装置(100),用户通过该装置设置***参数和任务处理相关参数,并将设置的参数存储到数据存储装置(600)中,其中所述***参数包含***最大并发处理任务量和扫描***实时并发任务量的时间间隔,所述任务处理相关参数包括:任务预处理参数,用于决定所述***对接收到的不同渠道上送的批量任务,按照任务类型进行的预处理方式;任务优先次序参数,用于决定不同任务类型间的处理顺序;
预处理装置(300),用于对批量任务进行预处理,并将处理后产生的任务输出到数据存储装置(600)中,其进一步包括:批量任务接收单元(301),负责从数据存储装置(600)的参数存储单元(601)中读取任务优先次序参数,根据优先次序从数据存储装置(600)的批量任务存储单元(602)中,读取各渠道提交到所述***中的批量任务,输出给任务预处理单元(303);
任务预处理参数读入单元(302),该单元从数据存储装置(600)中读取某一任务类型的预处理参数,输出给任务预处理单元(303);
任务预处理单元(303),获取批量任务接收单元(301)输入的批量任务,以及任务预处理参数读入单元(302)输入的所述某一任务类型的预处理参数,对批量任务进行排序、汇总处理,将处理后产生的任务输出到数据存储装置(600)的任务存储单元(603)中;
调度引擎装置(400),用于定时侦测***当前并发处理任务量,计算***可分配的处理各渠道上送批量任务的线程数,并将结果输出给任务处理装置(500);
任务处理装置(500),用于接收从调度引擎装置(400)传输过来的***可分配的处理各渠道上送批量任务的线程数,调整内部线程,根据任务优先次序参数,读取经过预处理后的任务,进行任务处理;
数据存储装置(600),用于接收并存储参数设置装置(100)设置或计算得到的参数、各渠道上送的批量任务以及预处理装置(300)生成的任务和任务处理日志。
2.如权利要求1所述的***,其特征在于,该***进一步包括:
任务数据分析装置(200),用于记录与任务量相关的信息,计算某一时段内的渠道特征值和时点特征值,并将计算结果存储在数据存储装置(600)中。
3.如权利要求2所述的***,其特征在于,所述调度引擎装置(400)根据从数据存储装置(600)中获取***最大并发处理任务量、当前时段的渠道特征值和时点特征值,计算***可分配的处理各渠道上送批量任务的线程数。
4.如权利要求3所述的***,其特征在于,所述调度引擎装置(400)进一步包括:
任务量侦测单元(401),按照预先设定的时间间隔,定时获取所述***当前并发处理任务量N,输出给调度决策单元(403),其中N是自然数;
调度决策单元(403),从***参数设置单元(101)读取***最大并发处理任务量M,计算M是否大于N,如果大于,则计算当前时段***可分配的处理各渠道上送批量任务的线程数T,其中M和T为自然数。
5.如权利要求4所述的***,其特征在于,任务处理装置(500)进一步包括:
线程控制单元(501),将***可分配的处理各渠道上送批量任务的线程数T与处理任务量N所需的线程数进行比较,如果比较结果为T大,则增加线程,并启动应增加的线程,如果T小,则减少线程,并标记多余线程,待其当前任务完成后释放该线程;
任务接收单元(502)获取任务优先次序参数,根据优先级高低顺序,读取T条任务;
任务处理单元(503),根据读取顺序处理所述任务。
6.如权利要求1~5任一项所述的***,其特征在于,***可分配的处理各渠道上送批量任务的线程数T通过以下公式计算:
T=(M-N)×Pa×Pb,
其中M表示***最大并发处理任务量,N表示***当前并发处理任务量,
Pa=SUM(Sa)/SUM(S),Pa表示渠道特征值,是指在历史的某一个时段,某渠道向所述***上送任务量占所述***收到的所有任务量的占比,Sa表示某一天,某一时段内某一渠道提交的任务数,SUM(Sa)表示一年内,所述时段内所述渠道提交的任务总数,S表示上述某一天,某一时段内所述***收到的全部任务数,SUM(S)表示一年内,所述时段内所述***收到的任务总数,Pb=SUM(Sb)/SUM(S),Pb表示时点特征值,是指在历史的某一个时段,所述***接收到的批量任务在所述***接收到的全部任务中的占比,Sb表示某一天,某一时段内所述***接收的批量任务数,SUM(Sb)表示一年内,所述时段内所述***接收的批量任务总数,S表示所述某一天,某一时段内所述***收到的全部任务数,SUM(S)表示一年内,所述时段内所述***收到的任务总数。
7.如权利要求6所述的***,其特征在于,参数设置装置(100)进一步包括:
***参数设置单元(101),用户通过此单元设置所述***最大并发处理任务量M,设置扫描***实时并发任务量的时间间隔,输出到数据存储装置(600)中;
任务优先次序参数设置单元(102),用户通过此单元设置不同任务类型的处理优先级次序,输出到数据存储装置(600)中;
任务预处理参数设置单元(103),用户通过此单元设置所述***在接收到一个批量任务时所需要做的预处理工作,输出到数据存储装置(600)中。
8.一种批量调度方法,该方法包括:
用户通过参数设置装置(100)设置***参数和任务处理参数,并将设置的参数存储到数据存储装置(600)中,其中所述***参数包含***最大并发处理任务量和扫描***实时并发任务量的时间间隔,所述任务处 理参数包括:任务预处理参数,用于决定所述***对接收到的不同渠道上送的批量任务,按照任务类型进行的预处理方式;任务优先次序参数,用于决定不同任务类型间的处理顺序;
通过预处理装置(300)对批量任务进行预处理,并将处理后产生的任务输出到数据存储装置(600)中,其中预处理装置(300)进一步包括:批量任务接收单元(301),负责从数据存储装置(600)的参数存储单元(601)中读取任务优先次序参数,根据优先次序从数据存储装置(600)的批量任务存储单元(602)中,读取各渠道提交到所述***中的批量任务,输出给任务预处理单元(303);任务预处理参数读入单元(302),该单元从数据存储装置(600)中读取某一任务类型的预处理参数,输出给任务预处理单元(303);任务预处理单元(303),获取批量任务接收单元(301)输入的批量任务,以及任务预处理参数读入单元(302)输入的所述某一任务类型的预处理参数,对批量任务进行排序、汇总处理,将处理后产生的任务输出到数据存储装置(600)的任务存储单元(603)中;
利用调度引擎装置(400)定时侦测***当前并发处理任务量,计算***可分配的处理各渠道上送批量任务的线程数,并将结果输出给任务处理装置(500);
通过任务处理装置(500)接收从调度引擎装置(400)传输过来的***可分配的处理各渠道上送批量任务的线程数,调整内部线程,根据任务优先次序参数,读取经过预处理后的任务,进行任务处理;
通过数据存储装置(600)接收并存储参数设置装置(100)设置或计算得到的参数、各渠道上送的批量任务以及预处理装置(300)生成的任务和任务处理日志。
9.如权利要求8所述的方法,其特征在于,该方法进一步包括:
通过任务数据分析装置(200)记录与任务量相关的信息,计算某一时段内的渠道特征值和时点特征值,并将计算结果存储在数据存储装置(600)中。
10.如权利要求9所述的方法,其特征在于,所述调度引擎装置(400) 根据从数据存储装置(600)中获取***最大并发处理任务量、当前时段的渠道特征值和时点特征值,计算***可分配的处理各渠道上送批量任务的线程数。
11.如权利要求10所述的方法,其特征在于,所述调度引擎装置(400)进一步包括:
任务量侦测单元(401),按照预先设定的时间间隔,定时获取所述***当前并发处理任务量N,输出给调度决策单元(403),其中N是自然数;
调度参数读入单元(402),用于从数据存储装置(600)的任务信息存储单元(604)中读取当前时间段的渠道特征值和时点特征值,输出给调度决策单元(403);
调度决策单元(403),从***参数设置单元(101)读取***最大并发处理任务量M,计算M是否大于N,如果大于,则计算当前时段***可分配的处理各渠道上送批量任务的线程数T,其中M和T为自然数。
12.如权利要求11所述的方法,其特征在于,所述任务处理装置(500)进一步包括:
线程控制单元(501),将***可分配的处理各渠道上送批量任务的线程数T与处理任务量N所需的线程数进行比较,如果比较结果为T大,则增加线程,并启动应增加的线程,如果T小,则减少线程,并标记多余线程,待其当前任务完成后释放该线程;
任务接收单元(502)获取任务优先次序参数,根据优先级高低顺序,读取T条任务;
任务处理单元(503),根据读取顺序处理所述任务。
13.如权利要求8~12任一项所述的方法,其特征在于,***可分配的处理各渠道上送批量任务的线程数T通过以下公式计算:
T=(M-N)×Pa×Pb,
其中M表示***最大并发处理任务量,N表示***当前并发处理任务量,
Pa=SUM(Sa)/SUM(S),Pa表示渠道特征值,是指在历史的某一个时段,某渠道向所述***上送任务量占所述***收到的所有任务量的占比,Sa表示某一天,某一时段内某一渠道提交的任务数,SUM(Sa)表示一年内,所述时段内所述渠道提交的任务总数,S表示某一天,某一时段内所述***收到的全部任务数,SUM(S)表示一年内,所述时段内所述***收到的任务总数,
Pb=SUM(Sb)/SUM(S),Pb表示时点特征值,是指在历史的某一个时段,所述***接收到的批量任务在所述***接收到的全部任务中的占比,Sb表示某一天,某一时段内所述***接收的批量任务数,SUM(Sb)表示一年内,所述时段内所述***接收的批量任务总数,S表示所述某一天,某一时段内所述***收到的全部任务数,SUM(S)表示一年内,所述时段内所述***收到的任务总数。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201110391457.6A CN102393822B (zh) | 2011-11-30 | 2011-11-30 | 批量调度***及方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201110391457.6A CN102393822B (zh) | 2011-11-30 | 2011-11-30 | 批量调度***及方法 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN102393822A CN102393822A (zh) | 2012-03-28 |
CN102393822B true CN102393822B (zh) | 2014-03-12 |
Family
ID=45861151
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201110391457.6A Active CN102393822B (zh) | 2011-11-30 | 2011-11-30 | 批量调度***及方法 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN102393822B (zh) |
Families Citing this family (26)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN103197970A (zh) * | 2013-04-12 | 2013-07-10 | 中国银行股份有限公司 | 在多机构运行下作业的触发方法及银行数据处理*** |
CN103197960B (zh) * | 2013-04-12 | 2016-06-22 | 中国银行股份有限公司 | 用于批量作业***的调度方法及*** |
CN103645944B (zh) * | 2013-12-25 | 2017-01-18 | 中国工商银行股份有限公司 | 一种批量数据冲突检测方法、装置及*** |
CN105335231B (zh) * | 2014-08-15 | 2020-01-31 | 阿里巴巴集团控股有限公司 | 一种服务端线程的动态分配方法和设备 |
CN105718243B (zh) * | 2014-12-01 | 2018-12-21 | 金蝶软件(中国)有限公司 | Erp***中数据批量操作的方法和*** |
CN105389208B (zh) * | 2015-11-10 | 2018-12-14 | 中国建设银行股份有限公司 | 作业处理方法及装置 |
CN105389209B (zh) * | 2015-12-25 | 2019-04-26 | 中国建设银行股份有限公司 | 一种异步批量任务处理方法及*** |
CN105912401B (zh) * | 2016-04-08 | 2019-03-12 | 中国银行股份有限公司 | 一种分布式数据批处理***和方法 |
CN105930216A (zh) * | 2016-04-15 | 2016-09-07 | 平安科技(深圳)有限公司 | 电子签名***自动排配方法、***及服务器 |
CN107491346B (zh) * | 2016-06-12 | 2021-03-12 | 阿里巴巴集团控股有限公司 | 一种应用的任务处理方法、装置及*** |
CN106204010A (zh) * | 2016-07-26 | 2016-12-07 | 通联支付网络服务股份有限公司 | 一种渠道接入*** |
CN108197912A (zh) * | 2016-12-08 | 2018-06-22 | 阿里巴巴集团控股有限公司 | 一种业务处理***及方法 |
CN108270603A (zh) * | 2016-12-31 | 2018-07-10 | ***通信集团陕西有限公司 | 一种调度方法及管理*** |
CN107016536B (zh) * | 2017-01-16 | 2018-06-22 | 平安银行股份有限公司 | 交易处理的方法及交易服务器 |
CN107977206B (zh) * | 2017-11-14 | 2020-11-27 | 北京思特奇信息技术股份有限公司 | 一种批量业务数据文件处理方法及装置 |
CN107943584A (zh) * | 2017-11-15 | 2018-04-20 | 中国银行股份有限公司 | 批量交易请求的处理方法及装置 |
CN108829506A (zh) * | 2018-07-04 | 2018-11-16 | 中国建设银行股份有限公司 | 批量任务处理方法、装置及服务*** |
CN109271252B (zh) * | 2018-08-29 | 2021-07-16 | 华为技术有限公司 | 一种调整线程数的方法及装置 |
CN109492024A (zh) * | 2018-10-26 | 2019-03-19 | 平安科技(深圳)有限公司 | 数据处理方法、装置、计算机设备以及存储介质 |
CN110018906B (zh) * | 2019-02-26 | 2020-11-27 | 上海丽人丽妆网络科技有限公司 | 调度方法、服务器及调度*** |
CN110297711B (zh) * | 2019-05-16 | 2024-01-19 | 平安科技(深圳)有限公司 | 批量数据处理方法、装置、计算机设备及存储介质 |
CN110362452B (zh) * | 2019-07-18 | 2022-07-22 | 中国银行股份有限公司 | 一种批量运维方法及*** |
CN112732417A (zh) * | 2019-10-28 | 2021-04-30 | 北京京东振世信息技术有限公司 | 一种处理应用请求的方法和装置 |
CN111104218B (zh) * | 2019-11-29 | 2022-04-22 | 北京浪潮数据技术有限公司 | 存储***数据同步方法、装置、设备及可读存储介质 |
CN111563084A (zh) * | 2020-05-06 | 2020-08-21 | 中国银行股份有限公司 | 批量扣费数据处理方法及装置 |
CN113190418A (zh) * | 2021-07-01 | 2021-07-30 | 奇安信科技集团股份有限公司 | 日志接收方法、装置、电子设备及存储介质 |
Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN1577278A (zh) * | 2003-07-22 | 2005-02-09 | 株式会社东芝 | 执行实时操作的方法和*** |
CN1787000A (zh) * | 2005-11-15 | 2006-06-14 | 中国工商银行股份有限公司 | 批量作业集中管理和调度的***及方法 |
CN101001174A (zh) * | 2006-12-31 | 2007-07-18 | 华为技术有限公司 | 一种在网元管理***中实现集中调度的方法及*** |
-
2011
- 2011-11-30 CN CN201110391457.6A patent/CN102393822B/zh active Active
Patent Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN1577278A (zh) * | 2003-07-22 | 2005-02-09 | 株式会社东芝 | 执行实时操作的方法和*** |
CN1787000A (zh) * | 2005-11-15 | 2006-06-14 | 中国工商银行股份有限公司 | 批量作业集中管理和调度的***及方法 |
CN101001174A (zh) * | 2006-12-31 | 2007-07-18 | 华为技术有限公司 | 一种在网元管理***中实现集中调度的方法及*** |
Non-Patent Citations (2)
Title |
---|
一种多用户MapReduce集群的作业调度算法的设计与实现;王凯,吴泉源,杨树强;《计算机与现代化》;20101030(第10期);23-27页 * |
王凯,吴泉源,杨树强.一种多用户MapReduce集群的作业调度算法的设计与实现.《计算机与现代化》.2010,(第10期),第23-28页. |
Also Published As
Publication number | Publication date |
---|---|
CN102393822A (zh) | 2012-03-28 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN102393822B (zh) | 批量调度***及方法 | |
US7797224B2 (en) | Systems and methods for automatically backing out by orders | |
US7873563B2 (en) | Systems and methods for automatically backing out buy orders | |
US8996612B1 (en) | System and method for transferring data between a user space and a kernel space in a server associated with a distributed network environment | |
US20170293980A1 (en) | System and method for managing processing resources of a computing system | |
US8838495B2 (en) | Method and system for monitoring market data to identify user defined market conditions | |
CN102609875A (zh) | 一种动态并行处理银行数据的方法及*** | |
CN110807059A (zh) | 一种财务共享模式下的会计凭证转换装置及其方法 | |
Borgs et al. | The optimal admission threshold in observable queues with state dependent pricing | |
CN107463642A (zh) | 提升数据仓库工具资源利用率的方法和装置 | |
CN202584217U (zh) | 一种银行数据的并行批量处理*** | |
CN101246578A (zh) | 三方存管处理***和方法 | |
CN109522134A (zh) | 一种基于云计算平台资源来进行计费的方法和设备 | |
CN113723881A (zh) | 运单分润结算方法、装置、设备及存储介质 | |
CN109242240A (zh) | 基于单位时间分配和时效控制的任务开发云平台 | |
CA2689491A1 (en) | System, method and program for agency cost estimation | |
JP2004164030A (ja) | 金融機関取引におけるポイント管理システム及び管理方法 | |
CN201514656U (zh) | 第三方存管处理*** | |
CN202838322U (zh) | 并行数据处理*** | |
CN110599111A (zh) | 劳务报酬发放方法及劳务报酬发放*** | |
CN111402018A (zh) | 一种上报资源预算的方法和*** | |
KR100650348B1 (ko) | 자동화 기기의 현송 금액 최적화 방법 | |
CN113469686B (zh) | 业务交易量的调整方法、装置、设备及存储介质 | |
CN113515374B (zh) | 数据处理方法及装置、电子设备和计算机可读存储介质 | |
Konana et al. | Pricing of Information Services Using Real-Time Databases: A Framework for Integrating User Preferences and Real-Time Workload (Best Paper Runner Up) |
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 |