一种任务处理方法和装置

文档序号:7431 发布日期:2021-09-17 浏览:27次 英文

一种任务处理方法和装置

技术领域

本发明涉及大数据

技术领域

,尤其涉及一种任务处理方法和装置。

背景技术

随着技术的发展和银行业务的不断推陈出新,银行系统需要进行批处理的业务数据也随之增多,且数据种类繁多,处理流程复杂。如何能较快速、稳定、灵活的对数据进行批处理,对现有批处理进行平滑过渡,是当前需要考虑的问题。

目前已有多种技术方案提供有对数据进行批处理的功能,如Kettle、DataStage,主要使用DataStage处理,但这些方案各有一定的不足,如开发流程复杂、可维护性较长、配置不便等。

以DataStage为例,在新开发一个批处理作业时,通过在DataStage中增加一个作业,然后在Control-M中新增一个调度,调用开发的批处理作业。Control-M调度支持按天执行的调度配置,对于需要一天执行多次的批处理作业,支持较弱。数据处理模式使用传统ETL方式进行处理,对事务支持较弱,若作业流程包含多个步骤,在作业执行出现错误时,难以追踪错误的具体原因。另外,对于已有批量作业,处理流程链复杂,当需修改优化时,难易进行修改。

发明内容

有鉴于此,本发明实施例提供一种任务处理方法和装置,至少能够解决现有技术中现有任务批处理存在开发流程复杂、可维护性较长、配置不便等问题的现象。

为实现上述目的,根据本发明实施例的一个方面,提供了一种任务处理方法,包括:

确定待执行的批处理任务,从所述批处理任务的属性中获取分片参数,判断所述分片参数是否设置为预设数值;其中,一个批处理任务包含待处理的多个数据;

若判断结果为是,则确定处理所述多个数据的多个设备,将不同数据分别分配给相应设备进行处理,汇总处理结果,得到执行结果;或

若判断结果为否,则确定一同处理所述多个数据的一个设备,将所述多个数据一同分配给所述一个设备进行处理,得到执行结果。

可选的,所述确定处理所述多个数据的多个设备,包括:

采用哈希算法,根据每个设备当前的处理器利用率和内存使用率、所述批处理任务中待处理的数据量,计算每个设备被分配的数据量。

可选的,所述确定一同处理所述多个数据的一个设备,包括:

从多个设备中筛选出当前负载最小的一个设备,将所述一个设备作为一同处理所述多个数据的目标设备。

可选的,所述确定一同处理所述多个数据的一个设备,包括:

确定历史处理所述批处理任务的一个或多个设备,统计所述批处理任务的历史执行时长、以及每个处理所述批处理任务时的处理器利用率,进而计算每个设备的权重值;

从所述一个或多个设备中筛选出权重值最大的一个设备,将所述一个设备作为一同处理所述多个数据的目标设备。

可选的,所述将不同数据分别分配给相应设备进行处理、或将所述多个数据一同分配给所述一个设备进行处理,包括:

从所述批处理任务的属性中获取串行参数,判断所述串行参数是否设置为第一预设数值;其中,串行参数对应批处理任务的多次执行实例,每执行一次批处理任务生成一个实例;

若判断结果为是,则在达到所述批处理任务的任务执行周期时,处理数据;或

若判断结果为否,则获取前一次执行所述批处理任务的实例的执行状态,在执行状态为执行完毕的情况下再处理数据。

可选的,所述在执行状态为执行完毕的情况下再处理数据,还包括:

对于一同处理所述多个数据的情况,若在达到所述批处理任务的执行周期时,所述执行状态为未执行完毕,则重新确定一同处理所述多个数据的另一个设备。

可选的,还包括:从数据库/操作路径中拉取待执行的多个批处理任务,并按照拉取顺序排列,以生成所述待执行任务队列。

可选的,还包括:当待处理数据为文件时,基于检查周期检查所述操作路径下是否存在文件,若不存在,则执行等待文件操作。

可选的,所述属性还包括任务编号、名称、可执行时段和任务参数;其中,任务参数包括任务执行时所需的特定参数。

可选的,还包括:判断当前时间段是否处于所述可执行时段内,若不处于,则执行等待操作。

可选的,还包括:在执行所述批处理任务的过程中,利用监听机制监控执行状态,若出现异常,则记录异常数据、异常原因和操作设备,生成任务执行异常日志。

可选的,在所述生成任务执行异常日志之后,还包括:

响应于对所述任务执行异常日志的打开,根据所述异常数据和异常原因,定位异常执行步骤;其中,一个批处理任务包括多个执行步骤。

可选的,还包括:若出现异常,则发送通知消息或弹出提醒消息。

为实现上述目的,根据本发明实施例的另一方面,提供了一种任务处理装置,包括:

判断模块,用于确定待执行的批处理任务,从所述批处理任务的属性中获取分片参数,判断所述分片参数是否设置为预设数值;其中,一个批处理任务包含待处理的多个数据;

分片模块,用于若判断结果为是,则确定处理所述多个数据的多个设备,将不同数据分别分配给相应设备进行处理,汇总处理结果,得到执行结果;或

不分片模块,用于若判断结果为否,则确定一同处理所述多个数据的一个设备,将所述多个数据一同分配给所述一个设备进行处理,得到执行结果。

可选的,所述分片模块,用于:采用哈希算法,根据每个设备当前的处理器利用率和内存使用率、所述批处理任务中待处理的数据量,计算每个设备被分配的数据量。

可选的,所述不分片模块,用于:从多个设备中筛选出当前负载最小的一个设备,将所述一个设备作为一同处理所述多个数据的目标设备。

可选的,所述不分片模块,用于:

确定历史处理所述批处理任务的一个或多个设备,统计所述批处理任务的历史执行时长、以及每个处理所述批处理任务时的处理器利用率,进而计算每个设备的权重值;

从所述一个或多个设备中筛选出权重值最大的一个设备,将所述一个设备作为一同处理所述多个数据的目标设备。

可选的,还包括串行模块,用于:

从所述批处理任务的属性中获取串行参数,判断所述串行参数是否设置为第一预设数值;其中,串行参数对应批处理任务的多次执行实例,每执行一次批处理任务生成一个实例;

若判断结果为是,则在达到所述批处理任务的任务执行周期时,处理数据;或

若判断结果为否,则获取前一次执行所述批处理任务的实例的执行状态,在执行状态为执行完毕的情况下再处理数据。

可选的,所述串行模块,还用于:

对于一同处理所述多个数据的情况,若在达到所述批处理任务的执行周期时,所述执行状态为未执行完毕,则重新确定一同处理所述多个数据的另一个设备。

可选的,还包括任务拉取模块,用于:

从数据库/操作路径中拉取待执行的多个批处理任务,并按照拉取顺序排列,以生成所述待执行任务队列。

可选的,所述任务拉取模块,还用于:当待处理数据为文件时,基于检查周期检查所述操作路径下是否存在文件,若不存在,则执行等待文件操作。

可选的,所述属性还包括任务编号、名称、可执行时段和任务参数;其中,任务参数包括任务执行时所需的特定参数。

可选的,还包括执行模块,用于:判断当前时间段是否处于所述可执行时段内,若不处于,则执行等待操作。

可选的,还包括异常监听模块,用于:在执行所述批处理任务的过程中,利用监听机制监控执行状态,若出现异常,则记录异常数据、异常原因和操作设备,生成任务执行异常日志。

可选的,还包括异常处理模块,用于:响应于对所述任务执行异常日志的打开,根据所述异常数据和异常原因,定位异常执行步骤;其中,一个批处理任务包括多个执行步骤。

可选的,还包括:若出现异常,则发送通知消息或弹出提醒消息。

为实现上述目的,根据本发明实施例的再一方面,提供了一种任务处理电子设备。

本发明实施例的电子设备包括:一个或多个处理器;存储装置,用于存储一个或多个程序,当所述一个或多个程序被所述一个或多个处理器执行,使得所述一个或多个处理器实现上述任一所述的任务处理方法。

为实现上述目的,根据本发明实施例的再一方面,提供了一种计算机可读介质,其上存储有计算机程序,所述程序被处理器执行时实现上述任一所述的任务处理方法。

根据本发明所述提供的方案,上述发明中的一个实施例具有如下优点或有益效果:为使批处理过程能更快速、灵活、可控,结合私有云框架及开发的一系统通用处理流程,可对部分批处理需求进行快速开发与配置,提高复杂批处理流程开发效率和可维护性,并支持对任务和作业执行状态的监控通知。

上述的非惯用的可选方式所具有的进一步效果将在下文中结合

具体实施方式

包括:确定待执行的批处理任务,从所述批处理任务的属性中获取分片参数,判断所述分片参数是否设置为预设数值;若判断结果为是,则确定处理所述多个数据的多个设备,将不同数据分别分配给相应设备进行处理,汇总处理结果,得到执行结果;若判断结果为否,则确定一同处理所述多个数据的一个设备,将所述多个数据一同分配给所述一个设备进行处理,得到执行结果。该实施方式能够实现机构(如银行系统)各种批处理需求的快速处理,简化了批处理的开发及运维处理。 ">

为遏制恶意抓取行为,请关注公众号获取访问口令


二维码

微信扫二维码关注公众号,发送“口令”获取

提交

提示:只需正确输入一次口令,该弹窗便不再弹出!

CN113407429A - 一种任务处理方法和装置 - Google Patents

一种任务处理方法和装置 Download PDF

Info

Publication number
CN113407429A
CN113407429A CN202110700169.8A CN202110700169A CN113407429A CN 113407429 A CN113407429 A CN 113407429A CN 202110700169 A CN202110700169 A CN 202110700169A CN 113407429 A CN113407429 A CN 113407429A
Authority
CN
China
Prior art keywords
task
processing
data
execution
batch processing
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.)
Pending
Application number
CN202110700169.8A
Other languages
English (en)
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 CN202110700169.8A priority Critical patent/CN113407429A/zh
Publication of CN113407429A publication Critical patent/CN113407429A/zh
Pending legal-status Critical Current

Links

  • 238000003672 processing method Methods 0.000 title claims abstract description 16
  • 238000000034 method Methods 0.000 claims abstract description 43
  • 238000006062 fragmentation reaction Methods 0.000 claims abstract description 42
  • 230000000875 corresponding Effects 0.000 claims abstract description 11
  • 230000002159 abnormal effect Effects 0.000 claims description 23
  • 238000011068 load Methods 0.000 claims description 10
  • 238000004590 computer program Methods 0.000 claims description 9
  • 238000009376 nuclear reprocessing Methods 0.000 claims description 7
  • 238000010586 diagram Methods 0.000 description 11
  • 238000004891 communication Methods 0.000 description 7
  • 230000004048 modification Effects 0.000 description 4
  • 238000006011 modification reaction Methods 0.000 description 4
  • 230000003287 optical Effects 0.000 description 4
  • 230000000694 effects Effects 0.000 description 3
  • 239000000835 fiber Substances 0.000 description 2
  • 230000000644 propagated Effects 0.000 description 2
  • 239000004065 semiconductor Substances 0.000 description 2
  • 230000001131 transforming Effects 0.000 description 2
  • 210000003666 Nerve Fibers, Myelinated Anatomy 0.000 description 1
  • 238000004458 analytical method Methods 0.000 description 1
  • 239000000969 carrier Substances 0.000 description 1
  • 238000001514 detection method Methods 0.000 description 1
  • 238000005538 encapsulation Methods 0.000 description 1
  • 238000005516 engineering process Methods 0.000 description 1
  • 238000000605 extraction Methods 0.000 description 1
  • 239000003365 glass fiber Substances 0.000 description 1
  • 239000004973 liquid crystal related substance Substances 0.000 description 1
  • 238000005457 optimization Methods 0.000 description 1
  • 229910052904 quartz Inorganic materials 0.000 description 1
  • 239000010453 quartz Substances 0.000 description 1
  • VYPSYNLAJGMNEJ-UHFFFAOYSA-N silicon dioxide Inorganic materials data:image/svg+xml;base64,PD94bWwgdmVyc2lvbj0nMS4wJyBlbmNvZGluZz0naXNvLTg4NTktMSc/Pgo8c3ZnIHZlcnNpb249JzEuMScgYmFzZVByb2ZpbGU9J2Z1bGwnCiAgICAgICAgICAgICAgeG1sbnM9J2h0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnJwogICAgICAgICAgICAgICAgICAgICAgeG1sbnM6cmRraXQ9J2h0dHA6Ly93d3cucmRraXQub3JnL3htbCcKICAgICAgICAgICAgICAgICAgICAgIHhtbG5zOnhsaW5rPSdodHRwOi8vd3d3LnczLm9yZy8xOTk5L3hsaW5rJwogICAgICAgICAgICAgICAgICB4bWw6c3BhY2U9J3ByZXNlcnZlJwp3aWR0aD0nMzAwcHgnIGhlaWdodD0nMzAwcHgnIHZpZXdCb3g9JzAgMCAzMDAgMzAwJz4KPCEtLSBFTkQgT0YgSEVBREVSIC0tPgo8cmVjdCBzdHlsZT0nb3BhY2l0eToxLjA7ZmlsbDojRkZGRkZGO3N0cm9rZTpub25lJyB3aWR0aD0nMzAwLjAnIGhlaWdodD0nMzAwLjAnIHg9JzAuMCcgeT0nMC4wJz4gPC9yZWN0Pgo8cGF0aCBjbGFzcz0nYm9uZC0wIGF0b20tMCBhdG9tLTEnIGQ9J00gNjQuOCwxNjIuNSBMIDc4LjksMTYyLjUnIHN0eWxlPSdmaWxsOm5vbmU7ZmlsbC1ydWxlOmV2ZW5vZGQ7c3Ryb2tlOiNFODQyMzU7c3Ryb2tlLXdpZHRoOjIuMHB4O3N0cm9rZS1saW5lY2FwOmJ1dHQ7c3Ryb2tlLWxpbmVqb2luOm1pdGVyO3N0cm9rZS1vcGFjaXR5OjEnIC8+CjxwYXRoIGNsYXNzPSdib25kLTAgYXRvbS0wIGF0b20tMScgZD0nTSA3OC45LDE2Mi41IEwgOTMuMCwxNjIuNScgc3R5bGU9J2ZpbGw6bm9uZTtmaWxsLXJ1bGU6ZXZlbm9kZDtzdHJva2U6IzNCNDE0MztzdHJva2Utd2lkdGg6Mi4wcHg7c3Ryb2tlLWxpbmVjYXA6YnV0dDtzdHJva2UtbGluZWpvaW46bWl0ZXI7c3Ryb2tlLW9wYWNpdHk6MScgLz4KPHBhdGggY2xhc3M9J2JvbmQtMCBhdG9tLTAgYXRvbS0xJyBkPSdNIDY0LjgsMTM3LjUgTCA3OC45LDEzNy41JyBzdHlsZT0nZmlsbDpub25lO2ZpbGwtcnVsZTpldmVub2RkO3N0cm9rZTojRTg0MjM1O3N0cm9rZS13aWR0aDoyLjBweDtzdHJva2UtbGluZWNhcDpidXR0O3N0cm9rZS1saW5lam9pbjptaXRlcjtzdHJva2Utb3BhY2l0eToxJyAvPgo8cGF0aCBjbGFzcz0nYm9uZC0wIGF0b20tMCBhdG9tLTEnIGQ9J00gNzguOSwxMzcuNSBMIDkzLjAsMTM3LjUnIHN0eWxlPSdmaWxsOm5vbmU7ZmlsbC1ydWxlOmV2ZW5vZGQ7c3Ryb2tlOiMzQjQxNDM7c3Ryb2tlLXdpZHRoOjIuMHB4O3N0cm9rZS1saW5lY2FwOmJ1dHQ7c3Ryb2tlLWxpbmVqb2luOm1pdGVyO3N0cm9rZS1vcGFjaXR5OjEnIC8+CjxwYXRoIGNsYXNzPSdib25kLTEgYXRvbS0xIGF0b20tMicgZD0nTSAxODQuMCwxNjIuNSBMIDIxMC4xLDE2Mi41JyBzdHlsZT0nZmlsbDpub25lO2ZpbGwtcnVsZTpldmVub2RkO3N0cm9rZTojM0I0MTQzO3N0cm9rZS13aWR0aDoyLjBweDtzdHJva2UtbGluZWNhcDpidXR0O3N0cm9rZS1saW5lam9pbjptaXRlcjtzdHJva2Utb3BhY2l0eToxJyAvPgo8cGF0aCBjbGFzcz0nYm9uZC0xIGF0b20tMSBhdG9tLTInIGQ9J00gMjEwLjEsMTYyLjUgTCAyMzYuMSwxNjIuNScgc3R5bGU9J2ZpbGw6bm9uZTtmaWxsLXJ1bGU6ZXZlbm9kZDtzdHJva2U6I0U4NDIzNTtzdHJva2Utd2lkdGg6Mi4wcHg7c3Ryb2tlLWxpbmVjYXA6YnV0dDtzdHJva2UtbGluZWpvaW46bWl0ZXI7c3Ryb2tlLW9wYWNpdHk6MScgLz4KPHBhdGggY2xhc3M9J2JvbmQtMSBhdG9tLTEgYXRvbS0yJyBkPSdNIDE4NC4wLDEzNy41IEwgMjEwLjEsMTM3LjUnIHN0eWxlPSdmaWxsOm5vbmU7ZmlsbC1ydWxlOmV2ZW5vZGQ7c3Ryb2tlOiMzQjQxNDM7c3Ryb2tlLXdpZHRoOjIuMHB4O3N0cm9rZS1saW5lY2FwOmJ1dHQ7c3Ryb2tlLWxpbmVqb2luOm1pdGVyO3N0cm9rZS1vcGFjaXR5OjEnIC8+CjxwYXRoIGNsYXNzPSdib25kLTEgYXRvbS0xIGF0b20tMicgZD0nTSAyMTAuMSwxMzcuNSBMIDIzNi4xLDEzNy41JyBzdHlsZT0nZmlsbDpub25lO2ZpbGwtcnVsZTpldmVub2RkO3N0cm9rZTojRTg0MjM1O3N0cm9rZS13aWR0aDoyLjBweDtzdHJva2UtbGluZWNhcDpidXR0O3N0cm9rZS1saW5lam9pbjptaXRlcjtzdHJva2Utb3BhY2l0eToxJyAvPgo8dGV4dCB4PScxMi41JyB5PScxNzAuMCcgY2xhc3M9J2F0b20tMCcgc3R5bGU9J2ZvbnQtc2l6ZTo0MHB4O2ZvbnQtc3R5bGU6bm9ybWFsO2ZvbnQtd2VpZ2h0Om5vcm1hbDtmaWxsLW9wYWNpdHk6MTtzdHJva2U6bm9uZTtmb250LWZhbWlseTpzYW5zLXNlcmlmO3RleHQtYW5jaG9yOnN0YXJ0O2ZpbGw6I0U4NDIzNScgPk88L3RleHQ+Cjx0ZXh0IHg9JzEyMC4yJyB5PScxNzAuMCcgY2xhc3M9J2F0b20tMScgc3R5bGU9J2ZvbnQtc2l6ZTo0MHB4O2ZvbnQtc3R5bGU6bm9ybWFsO2ZvbnQtd2VpZ2h0Om5vcm1hbDtmaWxsLW9wYWNpdHk6MTtzdHJva2U6bm9uZTtmb250LWZhbWlseTpzYW5zLXNlcmlmO3RleHQtYW5jaG9yOnN0YXJ0O2ZpbGw6IzNCNDE0MycgPlM8L3RleHQ+Cjx0ZXh0IHg9JzE0Ny44JyB5PScxNzAuMCcgY2xhc3M9J2F0b20tMScgc3R5bGU9J2ZvbnQtc2l6ZTo0MHB4O2ZvbnQtc3R5bGU6bm9ybWFsO2ZvbnQtd2VpZ2h0Om5vcm1hbDtmaWxsLW9wYWNpdHk6MTtzdHJva2U6bm9uZTtmb250LWZhbWlseTpzYW5zLXNlcmlmO3RleHQtYW5jaG9yOnN0YXJ0O2ZpbGw6IzNCNDE0MycgPmk8L3RleHQ+Cjx0ZXh0IHg9JzI2My41JyB5PScxNzAuMCcgY2xhc3M9J2F0b20tMicgc3R5bGU9J2ZvbnQtc2l6ZTo0MHB4O2ZvbnQtc3R5bGU6bm9ybWFsO2ZvbnQtd2VpZ2h0Om5vcm1hbDtmaWxsLW9wYWNpdHk6MTtzdHJva2U6bm9uZTtmb250LWZhbWlseTpzYW5zLXNlcmlmO3RleHQtYW5jaG9yOnN0YXJ0O2ZpbGw6I0U4NDIzNScgPk88L3RleHQ+Cjwvc3ZnPgo= data:image/svg+xml;base64,PD94bWwgdmVyc2lvbj0nMS4wJyBlbmNvZGluZz0naXNvLTg4NTktMSc/Pgo8c3ZnIHZlcnNpb249JzEuMScgYmFzZVByb2ZpbGU9J2Z1bGwnCiAgICAgICAgICAgICAgeG1sbnM9J2h0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnJwogICAgICAgICAgICAgICAgICAgICAgeG1sbnM6cmRraXQ9J2h0dHA6Ly93d3cucmRraXQub3JnL3htbCcKICAgICAgICAgICAgICAgICAgICAgIHhtbG5zOnhsaW5rPSdodHRwOi8vd3d3LnczLm9yZy8xOTk5L3hsaW5rJwogICAgICAgICAgICAgICAgICB4bWw6c3BhY2U9J3ByZXNlcnZlJwp3aWR0aD0nODVweCcgaGVpZ2h0PSc4NXB4JyB2aWV3Qm94PScwIDAgODUgODUnPgo8IS0tIEVORCBPRiBIRUFERVIgLS0+CjxyZWN0IHN0eWxlPSdvcGFjaXR5OjEuMDtmaWxsOiNGRkZGRkY7c3Ryb2tlOm5vbmUnIHdpZHRoPSc4NS4wJyBoZWlnaHQ9Jzg1LjAnIHg9JzAuMCcgeT0nMC4wJz4gPC9yZWN0Pgo8cGF0aCBjbGFzcz0nYm9uZC0wIGF0b20tMCBhdG9tLTEnIGQ9J00gMTIuNSw0NS40IEwgMjEuNyw0NS40JyBzdHlsZT0nZmlsbDpub25lO2ZpbGwtcnVsZTpldmVub2RkO3N0cm9rZTojRTg0MjM1O3N0cm9rZS13aWR0aDoxLjBweDtzdHJva2UtbGluZWNhcDpidXR0O3N0cm9rZS1saW5lam9pbjptaXRlcjtzdHJva2Utb3BhY2l0eToxJyAvPgo8cGF0aCBjbGFzcz0nYm9uZC0wIGF0b20tMCBhdG9tLTEnIGQ9J00gMjEuNyw0NS40IEwgMzEuMCw0NS40JyBzdHlsZT0nZmlsbDpub25lO2ZpbGwtcnVsZTpldmVub2RkO3N0cm9rZTojM0I0MTQzO3N0cm9rZS13aWR0aDoxLjBweDtzdHJva2UtbGluZWNhcDpidXR0O3N0cm9rZS1saW5lam9pbjptaXRlcjtzdHJva2Utb3BhY2l0eToxJyAvPgo8cGF0aCBjbGFzcz0nYm9uZC0wIGF0b20tMCBhdG9tLTEnIGQ9J00gMTIuNSwzOC42IEwgMjEuNywzOC42JyBzdHlsZT0nZmlsbDpub25lO2ZpbGwtcnVsZTpldmVub2RkO3N0cm9rZTojRTg0MjM1O3N0cm9rZS13aWR0aDoxLjBweDtzdHJva2UtbGluZWNhcDpidXR0O3N0cm9rZS1saW5lam9pbjptaXRlcjtzdHJva2Utb3BhY2l0eToxJyAvPgo8cGF0aCBjbGFzcz0nYm9uZC0wIGF0b20tMCBhdG9tLTEnIGQ9J00gMjEuNywzOC42IEwgMzEuMCwzOC42JyBzdHlsZT0nZmlsbDpub25lO2ZpbGwtcnVsZTpldmVub2RkO3N0cm9rZTojM0I0MTQzO3N0cm9rZS13aWR0aDoxLjBweDtzdHJva2UtbGluZWNhcDpidXR0O3N0cm9rZS1saW5lam9pbjptaXRlcjtzdHJva2Utb3BhY2l0eToxJyAvPgo8cGF0aCBjbGFzcz0nYm9uZC0xIGF0b20tMSBhdG9tLTInIGQ9J00gNDQuOSw0NS40IEwgNTguMiw0NS40JyBzdHlsZT0nZmlsbDpub25lO2ZpbGwtcnVsZTpldmVub2RkO3N0cm9rZTojM0I0MTQzO3N0cm9rZS13aWR0aDoxLjBweDtzdHJva2UtbGluZWNhcDpidXR0O3N0cm9rZS1saW5lam9pbjptaXRlcjtzdHJva2Utb3BhY2l0eToxJyAvPgo8cGF0aCBjbGFzcz0nYm9uZC0xIGF0b20tMSBhdG9tLTInIGQ9J00gNTguMiw0NS40IEwgNzEuNiw0NS40JyBzdHlsZT0nZmlsbDpub25lO2ZpbGwtcnVsZTpldmVub2RkO3N0cm9rZTojRTg0MjM1O3N0cm9rZS13aWR0aDoxLjBweDtzdHJva2UtbGluZWNhcDpidXR0O3N0cm9rZS1saW5lam9pbjptaXRlcjtzdHJva2Utb3BhY2l0eToxJyAvPgo8cGF0aCBjbGFzcz0nYm9uZC0xIGF0b20tMSBhdG9tLTInIGQ9J00gNDQuOSwzOC42IEwgNTguMiwzOC42JyBzdHlsZT0nZmlsbDpub25lO2ZpbGwtcnVsZTpldmVub2RkO3N0cm9rZTojM0I0MTQzO3N0cm9rZS13aWR0aDoxLjBweDtzdHJva2UtbGluZWNhcDpidXR0O3N0cm9rZS1saW5lam9pbjptaXRlcjtzdHJva2Utb3BhY2l0eToxJyAvPgo8cGF0aCBjbGFzcz0nYm9uZC0xIGF0b20tMSBhdG9tLTInIGQ9J00gNTguMiwzOC42IEwgNzEuNiwzOC42JyBzdHlsZT0nZmlsbDpub25lO2ZpbGwtcnVsZTpldmVub2RkO3N0cm9rZTojRTg0MjM1O3N0cm9rZS13aWR0aDoxLjBweDtzdHJva2UtbGluZWNhcDpidXR0O3N0cm9rZS1saW5lam9pbjptaXRlcjtzdHJva2Utb3BhY2l0eToxJyAvPgo8dGV4dCB4PSczLjQnIHk9JzQ4LjknIGNsYXNzPSdhdG9tLTAnIHN0eWxlPSdmb250LXNpemU6MTNweDtmb250LXN0eWxlOm5vcm1hbDtmb250LXdlaWdodDpub3JtYWw7ZmlsbC1vcGFjaXR5OjE7c3Ryb2tlOm5vbmU7Zm9udC1mYW1pbHk6c2Fucy1zZXJpZjt0ZXh0LWFuY2hvcjpzdGFydDtmaWxsOiNFODQyMzUnID5PPC90ZXh0Pgo8dGV4dCB4PSczMS43JyB5PSc0OC45JyBjbGFzcz0nYXRvbS0xJyBzdHlsZT0nZm9udC1zaXplOjEzcHg7Zm9udC1zdHlsZTpub3JtYWw7Zm9udC13ZWlnaHQ6bm9ybWFsO2ZpbGwtb3BhY2l0eToxO3N0cm9rZTpub25lO2ZvbnQtZmFtaWx5OnNhbnMtc2VyaWY7dGV4dC1hbmNob3I6c3RhcnQ7ZmlsbDojM0I0MTQzJyA+UzwvdGV4dD4KPHRleHQgeD0nNDEuMicgeT0nNDguOScgY2xhc3M9J2F0b20tMScgc3R5bGU9J2ZvbnQtc2l6ZToxM3B4O2ZvbnQtc3R5bGU6bm9ybWFsO2ZvbnQtd2VpZ2h0Om5vcm1hbDtmaWxsLW9wYWNpdHk6MTtzdHJva2U6bm9uZTtmb250LWZhbWlseTpzYW5zLXNlcmlmO3RleHQtYW5jaG9yOnN0YXJ0O2ZpbGw6IzNCNDE0MycgPmk8L3RleHQ+Cjx0ZXh0IHg9JzcyLjQnIHk9JzQ4LjknIGNsYXNzPSdhdG9tLTInIHN0eWxlPSdmb250LXNpemU6MTNweDtmb250LXN0eWxlOm5vcm1hbDtmb250LXdlaWdodDpub3JtYWw7ZmlsbC1vcGFjaXR5OjE7c3Ryb2tlOm5vbmU7Zm9udC1mYW1pbHk6c2Fucy1zZXJpZjt0ZXh0LWFuY2hvcjpzdGFydDtmaWxsOiNFODQyMzUnID5PPC90ZXh0Pgo8L3N2Zz4K O=[Si]=O VYPSYNLAJGMNEJ-UHFFFAOYSA-N 0.000 description 1
  • 238000006467 substitution reaction Methods 0.000 description 1
  • 230000026676 system process Effects 0.000 description 1

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING; COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/30Monitoring
    • G06F11/34Recording or statistical evaluation of computer activity, e.g. of down time, of input/output operation ; Recording or statistical evaluation of user activity, e.g. usability assessment
    • G06F11/3466Performance evaluation by tracing or monitoring
    • GPHYSICS
    • G06COMPUTING; CALCULATING; COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/30Monitoring
    • G06F11/34Recording or statistical evaluation of computer activity, e.g. of down time, of input/output operation ; Recording or statistical evaluation of user activity, e.g. usability assessment
    • G06F11/3466Performance evaluation by tracing or monitoring
    • G06F11/3476Data logging
    • GPHYSICS
    • G06COMPUTING; CALCULATING; COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/36Preventing errors by testing or debugging software
    • G06F11/362Software debugging
    • G06F11/3636Software debugging by tracing the execution of the program
    • GPHYSICS
    • G06COMPUTING; CALCULATING; COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/46Multiprogramming arrangements
    • G06F9/54Interprogram communication
    • G06F9/542Event management; Broadcasting; Multicasting; Notifications

Abstract

本发明公开了一种任务处理方法和装置,涉及大数据技术领域。该方法的一具体实施方式包括:确定待执行的批处理任务,从所述批处理任务的属性中获取分片参数,判断所述分片参数是否设置为预设数值;若判断结果为是,则确定处理所述多个数据的多个设备,将不同数据分别分配给相应设备进行处理,汇总处理结果,得到执行结果;若判断结果为否,则确定一同处理所述多个数据的一个设备,将所述多个数据一同分配给所述一个设备进行处理,得到执行结果。该实施方式能够实现机构(如银行系统)各种批处理需求的快速处理,简化了批处理的开发及运维处理。

Description

一种任务处理方法和装置

技术领域

本发明涉及大数据技术领域,尤其涉及一种任务处理方法和装置。

背景技术

随着技术的发展和银行业务的不断推陈出新,银行系统需要进行批处理的业务数据也随之增多,且数据种类繁多,处理流程复杂。如何能较快速、稳定、灵活的对数据进行批处理,对现有批处理进行平滑过渡,是当前需要考虑的问题。

目前已有多种技术方案提供有对数据进行批处理的功能,如Kettle、DataStage,主要使用DataStage处理,但这些方案各有一定的不足,如开发流程复杂、可维护性较长、配置不便等。

以DataStage为例,在新开发一个批处理作业时,通过在DataStage中增加一个作业,然后在Control-M中新增一个调度,调用开发的批处理作业。Control-M调度支持按天执行的调度配置,对于需要一天执行多次的批处理作业,支持较弱。数据处理模式使用传统ETL方式进行处理,对事务支持较弱,若作业流程包含多个步骤,在作业执行出现错误时,难以追踪错误的具体原因。另外,对于已有批量作业,处理流程链复杂,当需修改优化时,难易进行修改。

发明内容

有鉴于此,本发明实施例提供一种任务处理方法和装置,至少能够解决现有技术中现有任务批处理存在开发流程复杂、可维护性较长、配置不便等问题的现象。

为实现上述目的,根据本发明实施例的一个方面,提供了一种任务处理方法,包括:

确定待执行的批处理任务,从所述批处理任务的属性中获取分片参数,判断所述分片参数是否设置为预设数值;其中,一个批处理任务包含待处理的多个数据;

若判断结果为是,则确定处理所述多个数据的多个设备,将不同数据分别分配给相应设备进行处理,汇总处理结果,得到执行结果;或

若判断结果为否,则确定一同处理所述多个数据的一个设备,将所述多个数据一同分配给所述一个设备进行处理,得到执行结果。

可选的,所述确定处理所述多个数据的多个设备,包括:

采用哈希算法,根据每个设备当前的处理器利用率和内存使用率、所述批处理任务中待处理的数据量,计算每个设备被分配的数据量。

可选的,所述确定一同处理所述多个数据的一个设备,包括:

从多个设备中筛选出当前负载最小的一个设备,将所述一个设备作为一同处理所述多个数据的目标设备。

可选的,所述确定一同处理所述多个数据的一个设备,包括:

确定历史处理所述批处理任务的一个或多个设备,统计所述批处理任务的历史执行时长、以及每个处理所述批处理任务时的处理器利用率,进而计算每个设备的权重值;

从所述一个或多个设备中筛选出权重值最大的一个设备,将所述一个设备作为一同处理所述多个数据的目标设备。

可选的,所述将不同数据分别分配给相应设备进行处理、或将所述多个数据一同分配给所述一个设备进行处理,包括:

从所述批处理任务的属性中获取串行参数,判断所述串行参数是否设置为第一预设数值;其中,串行参数对应批处理任务的多次执行实例,每执行一次批处理任务生成一个实例;

若判断结果为是,则在达到所述批处理任务的任务执行周期时,处理数据;或

若判断结果为否,则获取前一次执行所述批处理任务的实例的执行状态,在执行状态为执行完毕的情况下再处理数据。

可选的,所述在执行状态为执行完毕的情况下再处理数据,还包括:

对于一同处理所述多个数据的情况,若在达到所述批处理任务的执行周期时,所述执行状态为未执行完毕,则重新确定一同处理所述多个数据的另一个设备。

可选的,还包括:从数据库/操作路径中拉取待执行的多个批处理任务,并按照拉取顺序排列,以生成所述待执行任务队列。

可选的,还包括:当待处理数据为文件时,基于检查周期检查所述操作路径下是否存在文件,若不存在,则执行等待文件操作。

可选的,所述属性还包括任务编号、名称、可执行时段和任务参数;其中,任务参数包括任务执行时所需的特定参数。

可选的,还包括:判断当前时间段是否处于所述可执行时段内,若不处于,则执行等待操作。

可选的,还包括:在执行所述批处理任务的过程中,利用监听机制监控执行状态,若出现异常,则记录异常数据、异常原因和操作设备,生成任务执行异常日志。

可选的,在所述生成任务执行异常日志之后,还包括:

响应于对所述任务执行异常日志的打开,根据所述异常数据和异常原因,定位异常执行步骤;其中,一个批处理任务包括多个执行步骤。

可选的,还包括:若出现异常,则发送通知消息或弹出提醒消息。

为实现上述目的,根据本发明实施例的另一方面,提供了一种任务处理装置,包括:

判断模块,用于确定待执行的批处理任务,从所述批处理任务的属性中获取分片参数,判断所述分片参数是否设置为预设数值;其中,一个批处理任务包含待处理的多个数据;

分片模块,用于若判断结果为是,则确定处理所述多个数据的多个设备,将不同数据分别分配给相应设备进行处理,汇总处理结果,得到执行结果;或

不分片模块,用于若判断结果为否,则确定一同处理所述多个数据的一个设备,将所述多个数据一同分配给所述一个设备进行处理,得到执行结果。

可选的,所述分片模块,用于:采用哈希算法,根据每个设备当前的处理器利用率和内存使用率、所述批处理任务中待处理的数据量,计算每个设备被分配的数据量。

可选的,所述不分片模块,用于:从多个设备中筛选出当前负载最小的一个设备,将所述一个设备作为一同处理所述多个数据的目标设备。

可选的,所述不分片模块,用于:

确定历史处理所述批处理任务的一个或多个设备,统计所述批处理任务的历史执行时长、以及每个处理所述批处理任务时的处理器利用率,进而计算每个设备的权重值;

从所述一个或多个设备中筛选出权重值最大的一个设备,将所述一个设备作为一同处理所述多个数据的目标设备。

可选的,还包括串行模块,用于:

从所述批处理任务的属性中获取串行参数,判断所述串行参数是否设置为第一预设数值;其中,串行参数对应批处理任务的多次执行实例,每执行一次批处理任务生成一个实例;

若判断结果为是,则在达到所述批处理任务的任务执行周期时,处理数据;或

若判断结果为否,则获取前一次执行所述批处理任务的实例的执行状态,在执行状态为执行完毕的情况下再处理数据。

可选的,所述串行模块,还用于:

对于一同处理所述多个数据的情况,若在达到所述批处理任务的执行周期时,所述执行状态为未执行完毕,则重新确定一同处理所述多个数据的另一个设备。

可选的,还包括任务拉取模块,用于:

从数据库/操作路径中拉取待执行的多个批处理任务,并按照拉取顺序排列,以生成所述待执行任务队列。

可选的,所述任务拉取模块,还用于:当待处理数据为文件时,基于检查周期检查所述操作路径下是否存在文件,若不存在,则执行等待文件操作。

可选的,所述属性还包括任务编号、名称、可执行时段和任务参数;其中,任务参数包括任务执行时所需的特定参数。

可选的,还包括执行模块,用于:判断当前时间段是否处于所述可执行时段内,若不处于,则执行等待操作。

可选的,还包括异常监听模块,用于:在执行所述批处理任务的过程中,利用监听机制监控执行状态,若出现异常,则记录异常数据、异常原因和操作设备,生成任务执行异常日志。

可选的,还包括异常处理模块,用于:响应于对所述任务执行异常日志的打开,根据所述异常数据和异常原因,定位异常执行步骤;其中,一个批处理任务包括多个执行步骤。

可选的,还包括:若出现异常,则发送通知消息或弹出提醒消息。

为实现上述目的,根据本发明实施例的再一方面,提供了一种任务处理电子设备。

本发明实施例的电子设备包括:一个或多个处理器;存储装置,用于存储一个或多个程序,当所述一个或多个程序被所述一个或多个处理器执行,使得所述一个或多个处理器实现上述任一所述的任务处理方法。

为实现上述目的,根据本发明实施例的再一方面,提供了一种计算机可读介质,其上存储有计算机程序,所述程序被处理器执行时实现上述任一所述的任务处理方法。

根据本发明所述提供的方案,上述发明中的一个实施例具有如下优点或有益效果:为使批处理过程能更快速、灵活、可控,结合私有云框架及开发的一系统通用处理流程,可对部分批处理需求进行快速开发与配置,提高复杂批处理流程开发效率和可维护性,并支持对任务和作业执行状态的监控通知。

上述的非惯用的可选方式所具有的进一步效果将在下文中结合具体实施方式加以说明。

附图说明

附图用于更好地理解本发明,不构成对本发明的不当限定。其中:

图1是根据本发明实施例的一种任务处理方法的主要流程示意图;

图2是根据本发明实施例的一种可选的任务处理方法的流程示意图;

图3是根据本发明实施例的另一种可选的任务处理方法的流程示意图;

图4是根据本发明实施例的又一种可选的任务处理方法的流程示意图;

图5是根据本发明实施例的一种任务处理装置的主要模块示意图;

图6是本发明实施例可以应用于其中的示例性系统架构图;

图7是适于用来实现本发明实施例的移动设备或服务器的计算机系统的结构示意图。

具体实施方式

以下结合附图对本发明的示范性实施例做出说明,其中包括本发明实施例的各种细节以助于理解,应当将它们认为仅仅是示范性的。因此,本领域普通技术人员应当认识到,可以对这里描述的实施例做出各种改变和修改,而不会背离本发明的范围和精神。同样,为了清楚和简明,以下的描述中省略了对公知功能和结构的描述。

对于本方案涉及到的词语,做解释如下:

批处理:IT系统对数据的处理分为联机交易和批处理两大类,联机交易指通过各种终端设备发起,通过多种渠道接入的需要及时响应的信息处理方式,处理时间快,时效性高。批处理指根据业务需求和技术方案在特定时间对系统在一定周期内产生的累积数据进行处理的过程,处理时间相对较长,处理效率高,能满足日终处理、统计结算、报表分析等需求。

批处理任务(Task):由一个或多个批处理作业组成的作业链。

批处理作业(Job):单个批处理作业,是Task中的一个步骤。

批处理步骤(Step):单个批处理作业Job中的一个步骤。

ETL:Extract-Transform-Load的缩写,即数据抽取、转换、装载的过程。

此处对现有技术Kettle、DataStage与本方案进行详细比对说明:

1、Kettle是一款开源的ETL工具,用于对各种数据进行处理、转换、迁移等。Kettle通过客户端进行开发,在面对大量作业的情况下,配置开发、管理很难完成。且事务功能支持较弱,对需要事务控制的复杂作业流程支持不足。本方案提供有Task-Job-Step三级流程控制,可灵活进行配置,基本Spring Batch自身完善的事务控制功能,可满足对复杂流程的事务处理要求。

2、DataStage支持数据集成需求的功能性、灵活性和可伸缩性,支持各种复杂的数据变换及过程等。Datastage工具重量级,对硬件要求较高,自身调度功能较为薄弱,在大量作业情况下,通常需要额外开发调度及监控程序。且事务功能支持较弱,对需要事务控制的复杂作业流程支持不足。对于作业异常处理情况下,定位问题较困难。本方案集成作业调度和批处理功能,单机环境即可运行,也支持集群模式运行。支持灵活的调度配置,支持完善的事务处理功能,提供内置批量工具,定制作业流程便捷。对异常处理流程,可快速定位到问题原因,便于系统运维。

参见图1,示出的是本发明实施例提供的一种任务处理方法的主要流程图,包括如下步骤:

S101:确定待执行的批处理任务,从所述批处理任务的属性中获取分片参数,判断所述分片参数是否设置为预设数值;其中,一个批处理任务包含待处理的多个数据;

S102:若判断结果为是,则确定处理所述多个数据的多个设备,将不同数据分别分配给相应设备进行处理,汇总处理结果,得到执行结果;

S103:若判断结果为否,则确定一同处理所述多个数据的一个设备,将所述多个数据一同分配给所述一个设备进行处理,得到执行结果。

上述实施方式中,对于步骤S101,预先设置任务调度周期,即任务执行间隔,例如每晚22点执行一次,或者每月执行一次、每5分钟执行一次、隔1分钟执行一次。根据配置的任务调度周期,从数据库/操作路径中拉取待执行的多个批处理任务,并按照拉取顺序进行排列,以生成待执行的任务队列,队列中包含多个批处理任务。此处的操作路径可以是磁盘中的某一具体位置,通常用于存储文件。当待处理数据为文件时,需基于检查周期查询该操作路径下是否存有文件,若不存在,则需等待,但若存在,则表示可以处理。

一个批处理任务(Task)由一个或多个批处理作业(Job)组成,每个批处理作业(Job)包含一个或多个批处理步骤(Step)。每个批处理步骤(Step)包括具体的操作和数据,即具体的作业流程逻辑处理,因而一个批处理任务包含多个待处理的数据。

获取对待执行的批处理任务预先配置的属性,包含任务编号、名称、任务执行状态、执行周期、串行参数、分片参数、可执行时段、任务参数(包括任务执行时所需的特定参数)等。在执行任务之前,首先判断当前时间段是否处于该可执行时段内,若不处于,则执行等待操作。

分片参数,若值为1,表示任务执行时,待处理数据可以被分配到多台主机执行;若值为0,表示任务执行时,待处理数据需分配到单台主机执行。

串行参数,若值为0,表示同一任务每次执行的实例不依赖前一实例执行的状态;若值为1,表示同一任务每次执行的实例必须等待前一实例执行完成(无论成功或失败)才执行;若值为2,表示同一任务每次执行的实例必须等待前一实例执行成功才执行。

若处于任务可执行时段内,则继续判断属性中的分片标志是否判断结果为是,若是,则表示该批处理任务中的数据支持分片处理,不同数据可以分配到不同主机(或称为设备)上处理,否则表示不支持,需将同一批处理任务的待处理数据分配给单台主机处理。假设批处理集群中共3台主机,一次任务的执行,对于分片模式需3台主机同时执行,每台处理大于三分之一的数据,主要用于大数据量、处理时间又要求比较快的情况;对于不分片模式,需将数据全部分配到某一台主机上执行。

上述实施例所提供的方法,在任务属性中设置分片标志,以判断是否采用分片模式处理任务中的多个数据。该种实施方式能够实现机构(如银行系统)各种批处理需求的快速处理,简化了批处理的开发及运维处理。

参见图2,示出了根据本发明实施例的一种可选的任务处理方法流程示意图,包括如下步骤:

S201:确定待执行的批处理任务,从所述批处理任务的属性中获取分片参数,判断所述分片参数是否设置为预设数值;其中,一个批处理任务包含待处理的多个数据;

S202:若判断结果为是,则采用哈希算法,根据每个设备当前的处理器利用率和内存使用率、所述批处理任务中待处理的数据量,计算每个设备被分配的数据量,汇总处理结果,得到处理总结果;

S203:若判断结果为否,则从多个设备中筛选出当前负载最小的一个设备,将所述一个设备作为一同处理所述多个数据的目标设备,得到执行结果;

S204:若判断结果为否,则确定历史处理所述批处理任务的一个或多个设备,统计所述批处理任务的历史执行时长、以及每个处理所述批处理任务时的处理器利用率,进而计算每个设备的权重值;

S205:从所述一个或多个设备中筛选出权重值最大的一个设备,将所述一个设备作为一同处理所述多个数据的目标设备,得到执行结果。

上述实施方式中,对于步骤S201可参见图1所示步骤S101的描述,在此不再赘述。

对于步骤S202,假设本次待执行的批处理任务包含20个待处理的数据,共有10台主机。对于任务支持分片执行的情况,需采用hash算法,根据每台主机当前的CPU利用率和内存使用率,计算每个主机被分配的比例,将比例与待处理数据量相乘,得到每个主机被分配的数据量,算法保证数据被分配完,并且10台主机大体上均分。

对于步骤S203,对于任务不支持分片执行的情况,可以从10台主机中筛选出当前负载最小的一个主机,以一同处理这20个数据。当待处理的任务数量较多时,也可以采用该种方式,例如,任务A-主机2,任务B-主机3,每次都是在确定前一个任务由哪个主机处理后,再确定当前负载最小的一个主机,有时会出现一个主机处理多个任务的情况。

动态规划算法通常用于求解具有某种最优性质的问题。在这类问题中,可能会有许多可行解,每一个解都对应于一个值,希望找到具有最优值的解。其基本思想是将待求解问题分解成若干个子问题,先求解子问题,然后从这些子问题的解得到原问题的解。

假如有3台主机,若将任务A分配到3台主机均可行,则有3种可行解。采用动态规划算法,将任务分配到负载最小的一台主机上,即最优解。每新增一次任务执行实例,都是查找最优解。假如有10个任务待执行,则按照上述方式,最终达到3台主机任务分配最均衡的情况。

对于步骤S204~S205,除了上述方式外,对于任务不支持分片执行的情况,还可以统计该任务历史被执行的时长、历史处理该任务的设备、设备处理该任务时的CPU利用率,以此计算这些设备的权重值,进而从中选择一个权重值最大的设备用以处理该任务。

上述实施例所提供的方法,对于任务分片执行和不分片执行的情况,采用不同的方式确定处理数据的设备,以此实现数据处理高效性。

参见图3,示出了根据本发明实施例的一种可选的任务处理方法流程示意图,包括如下步骤:

S301:从批处理任务的属性中获取串行参数,判断所述串行参数是否设置为第一预设数值;其中,串行参数对应批处理任务的多次执行实例,每执行一次批处理任务生成一个实例;

S302:若判断结果为是,则在达到所述批处理任务的任务执行周期时,处理数据;

S303:若判断结果为否,则获取前一次执行所述批处理任务的实例的执行状态,在执行状态为执行完毕的情况下再处理数据;

S304:对于一同处理所述多个数据的情况,若在达到所述批处理任务的执行周期时,所述执行状态为未执行完毕,则重新确定一同处理所述多个数据的另一个设备。

上述实施方式中,对于步骤S301~S304,若批处理任务属性中的串行标志判断结果为是,则表示该批处理任务不支持并行执行,否则表示支持并行执行。并行,表示一个任务在同一时间可存在多个实例;非并行,表示一个任务在同一时间只有一个实例。

任务每执行一次都生成一个实例,且每次执行都依赖前一实例执行的状态结果。例如,任务A设置为每5分钟执行一次,且是串行执行,在19:55、20:00、20:05时间点该任务A会分别执行一次,共生成3个实例。任务A在19:55时间点执行一次实例,但直到20:00还未执行完,则会在20:00时重新确定处理任务A的另一个设备。同理本该20:05执行的实例,由于20:00的实例还未执行完毕,则会在20:05重新确定处理任务A的另一个设备,如果在20:10时,20:00的实例仍未执行完,则会在20:10时再重新确定处理任务A的另一个设备。

例如,预设任务A每晚22点执行一次,但1号的任务A在2号晚上22点时还未执行完。对于串行处理方式,需在1号任务执行完毕后再执行2号任务,因此即使当前为2号22点后,2号任务也需继续等待。对于并行处理方式,即在达到2号22点时,无论1号任务是否执行完毕以及何时执行完毕,均开始执行2号任务。

上述实施例所提供的方法,对于串行模式和并行模式,设备采用不同方式处理任务中的数据,尤其是串行方式,需考虑前一实例的执行状态,若不符合要求则会重新确定处理设备,以此实现任务的及时处理。

参见图4,示出了根据本发明实施例的另一种可选的任务处理方法流程示意图,包括如下步骤:

S401:确定待执行的批处理任务,从所述批处理任务的属性中获取分片参数,判断所述分片参数是否设置为预设数值;其中,一个批处理任务包含待处理的多个数据;

S402:若判断结果为是,则确定处理所述多个数据的多个设备,将不同数据分别分配给相应设备进行处理,汇总处理结果,得到执行结果;

S403:若判断结果为否,则确定一同处理所述多个数据的一个设备,将所述多个数据一同分配给所述一个设备进行处理,得到执行结果;

S404:在执行批处理任务的过程中,监控执行状态,若出现异常,则记录异常数据、操作设备和异常原因,生成任务执行异常日志;

S405:响应于对所述任务执行异常日志的打开,根据所述异常数据和异常原因,定位异常执行步骤;其中,一个批处理任务包括多个执行步骤。

上述实施方式中,对于步骤S401~S403可参见图1~图3所示描述,在此不再赘述。、

对于步骤S404和S405,在执行任务的过程中,通过事件监听器,监控任务在各个执行步骤中的执行状态,以在出现错误时发送通知消息,优化任务配置。后续开发人员可以打开任务执行异常日志,以根据日志中记载的异常数据、异常原因和操作设备,定位异常执行步骤,以定位具体问题和分析。

除此之外,本方案还可以根据任务配置的作业步骤,封装操作任务参数。操作任务参数除了包含之前的任务配置属性外,还包含任务开始执行时生成的一些参数,比如当前执行的业务日期、任务队列编号、任务使用到的数据文件路径、数据文件等待检测时间间隔、回滚文件路径、数据批量写入数据库的提交数量等,这些只有在任务开始执行时才能确定,所以需要封装处理。

封装任务参数是第一阶段,在第二阶段在执行任务时,每个批处理步骤用得到的任务参数都可能不同,每个步骤本身也有自己的参数,然后就需要从任务参数取出所需参数和步骤本身的参数,再组装一下。

上述实施例所提供的方法,利用增强的事件监听器,在执行任务过程中,对于出错的数据会记录到日志文件内,并且记录出错的原因,便于后续根据原因和数据,快速定位具体问题,提高了批处理任务的运行监控和运维处理。

本发明实施例所提供的方法,相比现有技术,至少存在如下有益效果:

1、使用Spring Batch提供的多方位事件监听机制,轻松掌握作业生命周期各阶段的状态。基于事件的异常处理机制,当任务执行出现异常时可以准确定位到异常位置,便于开发人员及时处理。

2、以开源批处理框架Spring Batch和Quartz调度框架为基础,结合私有云系统,针对性开发了流程配置、运行监控、事件通知等功能,使用Java语言开发,开发人员上手快,开发流程简单,运维方便,具有较强的技术创新思路。

3、整体实施便捷、配置方便,运维简便,易用性强,便于快速集成,解决了现有批处理框架过于重量级、需要专业技能人员开发,面对大批量需求难以应对的问题,实现批处理作业的快速开发,提高了复杂批处理流程开发效率和可维护性。

参见图5,示出了本发明实施例提供的一种任务处理装置500的主要模块示意图,包括:

判断模块501,用于确定待执行的批处理任务,从所述批处理任务的属性中获取分片参数,判断所述分片参数是否设置为预设数值;其中,一个批处理任务包含待处理的多个数据;

分片模块502,用于若判断结果为是,则确定处理所述多个数据的多个设备,将不同数据分别分配给相应设备进行处理,汇总处理结果,得到执行结果;或

不分片模块503,用于若判断结果为否,则确定一同处理所述多个数据的一个设备,将所述多个数据一同分配给所述一个设备进行处理,得到执行结果。

本发明实施装置中,所述分片模块502,用于:

采用哈希算法,根据每个设备当前的处理器利用率和内存使用率、所述批处理任务中待处理的数据量,计算每个设备被分配的数据量。

本发明实施装置中,所述不分片模块503,用于:

从多个设备中筛选出当前负载最小的一个设备,将所述一个设备作为一同处理所述多个数据的目标设备。

本发明实施装置中,所述不分片模块503,用于:

确定历史处理所述批处理任务的一个或多个设备,统计所述批处理任务的历史执行时长、以及每个处理所述批处理任务时的处理器利用率,进而计算每个设备的权重值;

从所述一个或多个设备中筛选出权重值最大的一个设备,将所述一个设备作为一同处理所述多个数据的目标设备。

本发明实施装置还包括串行模块,用于:

从所述批处理任务的属性中获取串行参数,判断所述串行参数是否设置为第一预设数值;其中,串行参数对应批处理任务的多次执行实例,每执行一次批处理任务生成一个实例;

若判断结果为是,则在达到所述批处理任务的任务执行周期时,处理数据;或

若判断结果为否,则获取前一次执行所述批处理任务的实例的执行状态,在执行状态为执行完毕的情况下再处理数据。

本发明实施装置中,所述串行模块,还用于:

对于一同处理所述多个数据的情况,若在达到所述批处理任务的执行周期时,所述执行状态为未执行完毕,则重新确定一同处理所述多个数据的另一个设备。

本发明实施装置还包括任务拉取模块,用于:

从数据库/操作路径中拉取待执行的多个批处理任务,并按照拉取顺序排列,以生成所述待执行任务队列。

本发明实施装置中,所述任务拉取模块,还用于:当待处理数据为文件时,基于检查周期检查所述操作路径下是否存在文件,若不存在,则执行等待文件操作。

本发明实施装置中,所述属性还包括任务编号、名称、可执行时段和任务参数;其中,任务参数包括任务执行时所需的特定参数。

本发明实施装置还包括执行模块,用于:

判断当前时间段是否处于所述可执行时段内,若不处于,则执行等待操作。

本发明实施装置还包括异常监听模块,用于:

在执行所述批处理任务的过程中,利用监听机制监控执行状态,若出现异常,则记录异常数据、异常原因和操作设备,生成任务执行异常日志。

本发明实施装置还包括异常处理模块,用于:

响应于对所述任务执行异常日志的打开,根据所述异常数据和异常原因,定位异常执行步骤;其中,一个批处理任务包括多个执行步骤。

本发明实施装置还包括:若出现异常,则发送通知消息或弹出提醒消息。

另外,在本发明实施例中所述装置的具体实施内容,在上面所述方法中已经详细说明了,故在此重复内容不再说明。

图6示出了可以应用本发明实施例的示例性系统架构600,包括终端设备601、602、603,网络604和服务器605(仅仅是示例)。

终端设备601、602、603可以是具有显示屏并且支持网页浏览的各种电子设备,安装有各种通讯客户端应用,用户可以使用终端设备601、602、603通过网络604与服务器605交互,以接收或发送消息等。

网络604用以在终端设备601、602、603和服务器605之间提供通信链路的介质。网络604可以包括各种连接类型,例如有线、无线通信链路或者光纤电缆等等。

服务器605可以是提供各种服务的服务器,用于执行确定待执行批处理任务,根据任务分片属性进行分片操作或不分片操作操作。

需要说明的是,本发明实施例所提供的方法一般由服务器605执行,相应地,装置一般设置于服务器605中。

应该理解,图6中的终端设备、网络和服务器的数目仅仅是示意性的。根据实现需要,可以具有任意数目的终端设备、网络和服务器。

下面参考图7,其示出了适于用来实现本发明实施例的终端设备的计算机系统700的结构示意图。图7示出的终端设备仅仅是一个示例,不应对本发明实施例的功能和使用范围带来任何限制。

如图7所示,计算机系统700包括中央处理单元(CPU)701,其可以根据存储在只读存储器(ROM)702中的程序或者从存储部分708加载到随机访问存储器(RAM)703中的程序而执行各种适当的动作和处理。在RAM 703中,还存储有系统700操作所需的各种程序和数据。CPU 701、ROM 702以及RAM 703通过总线704彼此相连。输入/输出(I/O)接口705也连接至总线704。

以下部件连接至I/O接口705:包括键盘、鼠标等的输入部分706;包括诸如阴极射线管(CRT)、液晶显示器(LCD)等以及扬声器等的输出部分707;包括硬盘等的存储部分708;以及包括诸如LAN卡、调制解调器等的网络接口卡的通信部分709。通信部分709经由诸如因特网的网络执行通信处理。驱动器710也根据需要连接至I/O接口705。可拆卸介质711,诸如磁盘、光盘、磁光盘、半导体存储器等等,根据需要安装在驱动器710上,以便于从其上读出的计算机程序根据需要被安装入存储部分708。

特别地,根据本发明公开的实施例,上文参考流程图描述的过程可以被实现为计算机软件程序。例如,本发明公开的实施例包括一种计算机程序产品,其包括承载在计算机可读介质上的计算机程序,该计算机程序包含用于执行流程图所示的方法的程序代码。在这样的实施例中,该计算机程序可以通过通信部分709从网络上被下载和安装,和/或从可拆卸介质711被安装。在该计算机程序被中央处理单元(CPU)701执行时,执行本发明的系统中限定的上述功能。

需要说明的是,本发明所示的计算机可读介质可以是计算机可读信号介质或者计算机可读存储介质或者是上述两者的任意组合。计算机可读存储介质例如可以是——但不限于——电、磁、光、电磁、红外线、或半导体的系统、装置或器件,或者任意以上的组合。计算机可读存储介质的更具体的例子可以包括但不限于:具有一个或多个导线的电连接、便携式计算机磁盘、硬盘、随机访问存储器(RAM)、只读存储器(ROM)、可擦式可编程只读存储器(EPROM或闪存)、光纤、便携式紧凑磁盘只读存储器(CD-ROM)、光存储器件、磁存储器件、或者上述的任意合适的组合。在本发明中,计算机可读存储介质可以是任何包含或存储程序的有形介质,该程序可以被指令执行系统、装置或者器件使用或者与其结合使用。而在本发明中,计算机可读的信号介质可以包括在基带中或者作为载波一部分传播的数据信号,其中承载了计算机可读的程序代码。这种传播的数据信号可以采用多种形式,包括但不限于电磁信号、光信号或上述的任意合适的组合。计算机可读的信号介质还可以是计算机可读存储介质以外的任何计算机可读介质,该计算机可读介质可以发送、传播或者传输用于由指令执行系统、装置或者器件使用或者与其结合使用的程序。计算机可读介质上包含的程序代码可以用任何适当的介质传输,包括但不限于:无线、电线、光缆、RF等等,或者上述的任意合适的组合。

附图中的流程图和框图,图示了按照本发明各种实施例的系统、方法和计算机程序产品的可能实现的体系架构、功能和操作。在这点上,流程图或框图中的每个方框可以代表一个模块、程序段、或代码的一部分,上述模块、程序段、或代码的一部分包含一个或多个用于实现规定的逻辑功能的可执行指令。也应当注意,在有些作为替换的实现中,方框中所标注的功能也可以以不同于附图中所标注的顺序发生。例如,两个接连地表示的方框实际上可以基本并行地执行,它们有时也可以按相反的顺序执行,这依所涉及的功能而定。也要注意的是,框图或流程图中的每个方框、以及框图或流程图中的方框的组合,可以用执行规定的功能或操作的专用的基于硬件的系统来实现,或者可以用专用硬件与计算机指令的组合来实现。

描述于本发明实施例中所涉及到的模块可以通过软件的方式实现,也可以通过硬件的方式来实现。所描述的模块也可以设置在处理器中,例如,可以描述为:一种处理器包括判断模块、分片模块、不分片模块。其中,这些模块的名称在某种情况下并不构成对该模块本身的限定,例如,分片模块还可以被描述为“不分片执行模块”。

作为另一方面,本发明还提供了一种计算机可读介质,该计算机可读介质可以是上述实施例中描述的设备中所包含的;也可以是单独存在,而未装配入该设备中。上述计算机可读介质承载有一个或者多个程序,当上述一个或者多个程序被一个该设备执行时,使得该设备包括:

确定待执行的批处理任务,从所述批处理任务的属性中获取分片参数,判断所述分片参数是否设置为预设数值;其中,一个批处理任务包含待处理的多个数据;

若判断结果为是,则确定处理所述多个数据的多个设备,将不同数据分别分配给相应设备进行处理,汇总处理结果,得到执行结果;或

若判断结果为否,则确定一同处理所述多个数据的一个设备,将所述多个数据一同分配给所述一个设备进行处理,得到执行结果。

根据本发明实施例的技术方案,在任务属性中设置分片标志,以判断是否采用分片模式处理任务中的多个数据。该种实施方式能够实现机构(如银行系统)各种批处理需求的快速处理,简化了批处理的开发及运维处理。

上述具体实施方式,并不构成对本发明保护范围的限制。本领域技术人员应该明白的是,取决于设计要求和其他因素,可以发生各种各样的修改、组合、子组合和替代。任何在本发明的精神和原则之内所作的修改、等同替换和改进等,均应包含在本发明保护范围之内。

完整详细技术资料下载
上一篇:石墨接头机器人自动装卡簧、装栓机
下一篇:基于应用性能监控的单指标参数采集方法及装置

网友询问留言

已有0条留言

还没有人留言评论。精彩留言会获得点赞!

精彩留言,会给你点赞!