CN104407847B - 一种批处理的方法及装置 - Google Patents
一种批处理的方法及装置 Download PDFInfo
- Publication number
- CN104407847B CN104407847B CN201410594325.7A CN201410594325A CN104407847B CN 104407847 B CN104407847 B CN 104407847B CN 201410594325 A CN201410594325 A CN 201410594325A CN 104407847 B CN104407847 B CN 104407847B
- Authority
- CN
- China
- Prior art keywords
- batch processing
- task
- batch
- unit
- request
- 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
Landscapes
- Debugging And Monitoring (AREA)
- Retry When Errors Occur (AREA)
Abstract
本发明实施例提供一种批处理的方法,该方法包括:接收批处理执行请求,根据所述批处理执行请求,执行所述批处理操作;在所述批处理执行过程中,接收用户终端发送的批处理中止请求;根据所述批处理中止请求,中止所述批处理操作,当所述批处理中止后,将所述批处理任务状态更新为已中止。本发明实现了在执行批处理过程中系统可接收外部指令进行适应性调整,从而提升了系统的处理效率及利用率。
Description
技术领域
本发明涉及通信技术领域,尤其涉及一种批处理的方法及装置。
背景技术
在大型的数据处理系统中,通常采用批处理装置对各种相关数据进行处理,批处理装置通常用于处理在自动控制流程中递交的批处理任务。Spring Batch是一个轻量级的,完全面向Spring的批处理框架,提供了通过使用Spring的依赖注入(dependencyinjection)来处理批处理的条件。Spring Batch以POJO和大家熟知的Spring框架为基础,使开发者容易的访问和利用企业级服务。Spring Batch可以提供大量的、可重复的数据处理功能、包括日志记录/跟踪、事务管理、作业处理统计工作重新启动、跳过和资源管理等功能。
目前,Spring Batch在执行批处理任务时,无法再接收外部指令进行适应性调整,导致批处理出现死循环时,无法再接收外部指令停止正在执行的批处理,从而降低系统的处理效率及利用率。
发明内容
本发明实施例提供一种批处理的方法及装置,用于提升系统的处理效率及利用率。
本发明第一方面提供一种批处理的方法,包括:
接收批处理执行请求,根据所述批处理执行请求,执行所述批处理操作;
在所述批处理执行过程中,接收用户终端发送的批处理中止请求;
根据所述批处理中止请求,中止所述批处理操作,当所述批处理中止后,将所述批处理任务状态更新为已中止。
本发明第二方面提供一种批处理的装置,包括:
接收单元,用于接收批处理执行请求;
执行模块,用于所述批处理执行请求,执行所述批处理操作;
接收单元,还用于在所述批处理执行过程中,接收用户终端发送的批处理中止请求;
中止模块,用于根据所述批处理中止请求,中止所述批处理操作;
更新单元,用于当所述批处理中止后,将所述批处理任务状态更新为已中止。
实施本发明实施例,具有如下有益效果:
本发明实施例中,接收批处理执行请求,根据所述批处理执行请求,执行所述批处理操作,在所述批处理执行过程中,接收用户终端发送的批处理中止请求,根据所述批处理中止请求,中止所述批处理操作,当所述批处理中止后,将所述批处理任务状态更新为已中止,实现了在执行批处理过程中系统可接收外部指令进行适应性调整,从而提升了系统的处理效率及利用率。
附图说明
为了更清楚地说明本发明实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
图1为本发明实施例提供的一种批处理的方法的流程图;
图2为本发明实施例提供的一种执行批处理的方法的流程图;
图3为本发明实施例提供的一种中止批处理的方法的流程图;
图4为本发明实施例提供的一种批处理错误恢复的方法的流程图;
图5为本发明实施例提供的一种批处理任务分片的方法的流程图;
图6为本发明实施例提供的一种批处理的装置的结构示意图;
图7为本发明实施例提供的一种批处理执行模块的结构示意图;
图8为本发明实施例提供的一种批处理中止模块的结构示意图;
图9为本发明实施例提供的一种批处理错误恢复模块的结构示意图;
图10为本发明实施例提供的一种批处理任务分片模块的结构示意图。
具体实施方式
下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
本发明实施例中提及的所述用户终端可以包括个人电脑、智能手机(如Android手机、iOS手机等)、平板电脑、掌上电脑、移动互联网设备(MID,Mobile Internet Devices)或穿戴式智能设备等互联网设备。
本发明实施例的批处理方案可以应用于银行的住房资金综合管理系统;或者,可以应用于银行的贷款综合管理系统;等等。
本发明实施例提供一种批处理的方法及装置。下面分别进行详细介绍。
请参阅图1,图1为本发明实施例提供的一种批处理的方法的流程示意图。如图1所示,该批处理的方法可以包括以下步骤:
101、接收批处理执行请求,根据所述批处理执行请求,执行所述批处理操作。
102、在所述批处理执行过程中,接收用户终端发送的批处理中止请求。
103、根据所述批处理中止请求,中止所述批处理操作,当所述批处理中止后,将所述批处理任务状态更新为已中止。
本发明实施例中,接收批处理执行请求,根据所述批处理执行请求,执行所述批处理操作,在所述批处理执行过程中,接收用户终端发送的批处理中止请求,根据所述批处理中止请求,中止所述批处理操作,当所述批处理中止后,将所述批处理任务状态更新为已中止,实现了在执行批处理过程中系统可接收外部指令进行适应性调整,从而提升了系统的处理效率及利用率。
下面将结合附图2-附图5,对本发明实施例提供的另一种批处理的方法的实施例进行详细的介绍。
请参阅图2,图2为本发明实施例提供的一种执行批处理的方法的流程示意图。如图2所示,该执行批处理的方法可以包括以下步骤:
1101、接收批处理执行请求。
其中,接收批处理执行请求包括接收到所述用户终端触发的批处理执行请求,或在集群环境下,批处理装置自动触发的批处理执行请求。所述批处理装置自动触发的批处理执行请求的方式包括使用所述批处理装置自带的quartz API(开源的定时调度装置)或使用sup(Software Unified Platform)自带的定时器组件自动触发所述批处理执行请求,上述两种自动触发方式为将批处理频度表达式的时间作为触发表达式,将批处理频度表达式的日期部分作为批处理执行的校验条件。
在接收批处理装置自动触发的批处理执行请求之后,先校验当日日期是否符合所述校验条件,若符合所述校验条件,判断所述批处理执行请求是否已触发,若所述批处理已触发,则获取所述批处理的状态。
若所述批处理状态为执行中时,则不触发所述批处理执行请求,并向所述用户终端发送正在执行的提示信息,若所述批处理状态为已完成时,则不触发所述批处理执行请求,并向所述用户终端发送所述批处理已完成的提示信息,若所述批处理状态为出错,则触发所述批处理执行请求,在所述批处理执行之前,恢复所述批处理,并在恢复成功后,执行所述批处理,若所述批处理状态为异常中止,则不触发所述批处理请求,并向所述用户终端发送所述批处理未修复,不允许执行的提示信息。
若校验当日日期不符合所述校验条件时,则向所述用户终端返回调度异常的提示信息。
所述批处理任务状态包括待执行、执行中和已完成,所述任务状态为已完成状态包括正常完成、异常终止、错误终止和正常中止。
1102、判断所述批处理任务是否为新的任务。
其中,所述批处理任务可以是新的任务,也可以是已执行但未处理完成的批处理任务,因此,在执行所述批处理之前先判断所述批处理任务是否为新的任务。
1103、若判断所述批处理任务为新的任务时,获取待处理任务。
1104、将获取的待处理任务加入待执行队列中等待执行。
1105、若判断所述批处理不为新的任务时,查询所述批处理的任务状态。
1106、获取所述批处理的执行步骤。
其中,当所述批处理不为新的任务时,在执行批处理任务前,先查询所述批处理的任务状态,并根据所述批处理的任务状态获取批处理的执行步骤,使得再次执行所述批处理任务时,可从上次批处理中止的步骤开始执行批处理任务,从而缩短了批处理的时间及提升了系统的性能。
1107、轮询所述待执行队列。
其中,轮询所述待执行队列,依次查询任务的状态,将所述任务状态为待执行、执行中或错误的任务修改为待执行,将所述任务移入线程池中进行处理及从所述待执行队列中移除,并将所述任务移入执行中队列以及更改所述任务的任务状态为执行中。
1108、轮询所述执行中队列。
其中,轮询所述执行中队列,依次查询任务的状态,将任务状态为已完成的任务移入已执行队列中,并将所述任务从所述执行中队列中移除。
1109、轮询所述已完成队列。
1110、判断是否存在下一步骤。
其中,轮询所述已执行列队,依次查询批处理任务的状态,查询所述任务状态为已完成的任务是否存在后续任务,若所述任务存在N笔后续任务,则将所述N笔后续任务移入所述待执行列队等待执行,其中N为大于等于1的整数,若否,且检测到所述待执行任务队列、所述执行中任务队列以及已执行任务队列都为空时,则终止所述批处理,并更新所述批处理任务状态为已完成。
请参阅图3,图3为本发明实施例提供的一种中止批处理的方法的流程示意图。如图3所示,该中止批处理的方法可以包括以下步骤:
1301、在批处理执行中,接收用户终端发送的批处理中止请求。
其中,批处理发起用户可以查看批处理的运行状态,对于任务状态为执行中的批处理,所述用户可以发起中止所述批处理的指令。
1302、批处理装置接收到批处理中止请求后,停止任务调度。
其中,当接收到外部发起的中止所述批处理的指令时,批处理装置不停止已处于执行中的任务,仅停止任务调度。
1303、停止任务调度后,继续执行任务状态为执行中的任务。
1304、当所有执行中的任务执行完成后,终止所述批处理。
其中,当检测到处于执行中的任务执行完毕后,终止所述批处理,并向所述用户终端返回已中止的提示信息。
请参阅图4,图4为本发明实施例提供的一种批处理错误恢复的方法的流程示意图。如图4所示,该批处理错误恢复的方法可以包括以下步骤:
1401、在接收所述批处理执行请求之前,接收用户终端发送的批处理错误恢复请求。
其中,在批处理执行中,批处理调度异常导致的错误中止以及执行异常导致的错误中止,在再次启动批处理任务前,需要对所述批处理进行错误恢复。
1402、判断所述批处理是否可恢复。
其中,在恢复所述批处理前,判断所述批处理是否可恢复。
1403、若所述批处理不可恢复,则向所述用户返回提示信息,所述提示信息用于提示用户修复所述批处理。
其中,不可恢复错误包括任务调度异常导致的错误中止、任务执行异常导致的错误中止和任务执行异常后重试执行所述任务次数超过指定次数后仍执行错误的错误,不可恢复错误为比较严重的错误,需要批处理发起用户找出错误的原因对所述错误进行修复。
1404、若所述批处理可恢复,则直接恢复所述批处理。
1405、判断所述批处理是否恢复成功。
1406、若所述批处理恢复成功后,重启所述批处理任务。
其中,在所述批处理恢复成功后,重启所述批处理任务,批处理装置将所述批处理恢复到所述批处理错误中止前的任务状态,重新执行所述批处理。
请参阅图5,图5为本发明实施例提供的一种批处理任务切片的方法的流程示意图。如图5所示,该批处理任务切片的方法可以包括以下步骤:
1501、在接收所述批处理执行请求之前,接收用户终端发送的批处理任务分片请求。
其中,在接收所述用户终端发送或批处理装置自动触发的批处理执行请求之前,接收用户终端发送的批处理任务分片请求。
1502、获取待分片的批处理任务。
1503、判断所述批处理任务是否分片处理完毕。
1504、如所述批处理任务为分片处理完毕,则继续任务分片处理,并返回下一个待分片的任务。
其中,批处理任务切片的功能主要是用于具有大批量数据的批处理任务进行数据切片。数据切片模块包括一个数据切片逻辑接口、数据切片处理接口和一个批量数据处理逻辑。
批量数据处理逻辑是批量数据切片处理的入口类,批量数据处理逻辑依赖于数据切片逻辑接口实现对数据切片的获取。批量数据处理逻辑根据用户传入的数据切片对象,循环获取并处理批量数据的一个切片。
数据切片逻辑接口负责从数据源获取当前待处理的数据切片。数据切片逻辑接口包括hasNextChunk(),nextChunk(),close()。hasNextChunk()返回boolean值,判断数据源是否处理完毕,next Chunk()返回下一个待处理数据切片,close()用于批处理完毕后关闭数据源、文件等资源。
数据切片处理接口负责提供某数据切片的处理逻辑,数据切片处理接口包括handleData()负责实现对一个切片的数据进行处理的逻辑。
进一步的,在批处理执行中,若检测到批处理任务调度异常,则停止任务调度,并继续执行任务状态为执行中的任务,当所有执行中任务完成后,终止所述批处理,并将所述调度异常写入批处理日志中。
在批处理执行中,若检测到任务执行异常,则根据所述任务的属性判断所述任务是否可重试,所述任务的属性包括可重试、中止和可跳过。
若所述任务属性为可重试,则重新执行所述任务,当重试次数超过指定次数后,所述任务仍执行错误,则中止所述批处理,并向所述用户终端返回错误中止的提示信息,若所述任务属性为中止,则直接中止所述批处理,并向所述用户终端返回错误中止的提示信息,若所述任务属性为可跳过,则跳过所述执行异常的任务,继续执行所述批处理。
进一步的,在批处理装置接收所述用户终端发送或批处理装置自动触发的批处理执行请求之前,先判断是否存在与所述批处理相对应的批处理调度逻辑,若否,根据所述批处理的编号和中心编号创建批处理调度逻辑,所述批处理调度逻辑持有3个任务调度状态集合,分别为待执行队列、执行中队列和已执行队列,若是,且所述批处理调度逻辑处于运行状态时,则向所述用户终端发送调度异常的提示信息。
通过对每个批处理任务建立与所述批处理任务相对应的批处理调度逻辑,实现批处理任务调度互斥,调度互斥指同一个批处理任务调度,在同一时间,在何种情况下保持其调度实例的唯一性,例如,同一中心,同一时间只能启动一个日终过程,同一网点,同一时间只能启动一个日结过程,有些批处理调度,对同一个文件或同一条记录,同一时间只能启动一个日结过程。因此,批处理调度需要提供能够唯一区分各调度实例的业务要素,并基于该业务属性能够实现调度过程的互斥。每个批处理调度业务的要素都不相同,可以是某一日期、也可以是某文件路径、也可以是某记录编号,业务要素的确定应根据具体业务的要求进行确定。
进一步的,在所述批处理任务执行完成、批处理任务调度异常导致所述批处理中止或批处理任务执行异常导致所述批处理中止时,通过短信的方式向所述预先绑定的电子设备发送提示信息,所述提示信息携带所述批处理的任务状态。
其中,在批处理系统的用户管理界面,预先绑定与所述批处理相对应的电子设备,当所述批处理执行完成或中止时,通过短信的方式向所述预先绑定的电子设备发送提示信息,所述提示信息携带所述批处理的任务状态,及时的提示用户对所述批处理进行适应性的调整。
本发明实施例中,批处理即管理所需执行的批处理,提供对所述批处理的查询、启动、中止及恢复操作,批处理装置根据批处理状态配置相应的操作按钮,如下表所示:
待执行 | 启动按钮 |
执行中 | 查询、中止按钮 |
中止中 | 查询按钮 |
已中止 | 查询、恢复按钮 |
已完成 | 查询 |
出错 | 查询、恢复 |
本发明实施例中,接收批处理执行请求,根据所述批处理执行请求,执行所述批处理操作,在所述批处理执行过程中,接收用户终端发送的批处理中止请求,根据所述批处理中止请求,中止所述批处理操作,当所述批处理中止后,将所述批处理任务状态更新为已中止,实现了在执行批处理过程中系统可接收外部指令进行适应性调整,从而提升了系统的处理效率及利用率。
请参阅图6,图6为本发明实施例提供的一种批处理的装置的结构示意图。如图6所示,该批处理的装置可以包括以下步骤:
接收单元201,用于接收批处理执行请求。
执行模块202,用于所述批处理执行请求,执行所述批处理操作。
所述接收单元201,还用于在所述批处理执行过程中,接收用户终端发送的批处理中止请求。
中止模块203,用于根据所述批处理中止请求,中止所述批处理操作。
更新单元204,用于当所述批处理中止后,将所述批处理任务状态更新为已中止。
进一步的,所述接收单元201,用于接收到所述用户终端触发的或批处理装置自动触发的批处理执行请求。
本发明实施例中,接收单元201接收批处理执行请求,执行模块202根据所述批处理执行请求,执行所述批处理操作,在所述批处理执行过程中,接收单元201接收用户终端发送的批处理中止请求,中止模块203根据所述批处理中止请求,中止所述批处理操作,更新单元204当所述批处理中止后,将所述批处理任务状态更新为已中止,实现了在执行批处理过程中系统可接收外部指令进行适应性调整,从而提升了系统的处理效率及利用率。
下面将结合附图7-附图10,对本发明实施例提供的另一种批处理的装置的实施例进行详细的介绍。
请参阅图7,图7为本发明实施例提供的一种批处理执行模块的结构示意图。如图7所示,该批处理执行模块可以包括以下步骤:
判断单元2101,用于在接收批处理执行请求之后,判断所述批处理是否为新的任务;
获取单元2102,用于在所述判断单元判断所述批处理为新的任务时,获取待处理任务;
转移单元2103,用于将所述待处理任务移入待执行队列中;
查询单元2104,用于在所述判断单元所述批处理不为新的任务时,查询所述批处理的任务状态;
所述获取单元2102,还用于根据所述查询单元查询查询所述批处理的任务状态,获取所述批处理的执行步骤。
轮询单元2105,用于轮询所述待执行队列;
所述转移单元2103,还用于将任务状态为待执行、执行中或错误的任务移入线程池中进行处理,并将任务移入执行中列队;
所述轮询单元2105,还用于轮询所述执行中队列;
所述转移单元2103,还用于将任务状态为已完成的任务移入已执行列队中;
所述轮询单元2105,还用于轮询所述已执行队列,查询任务状态为已完成的任务是否存在后续任务;
所述转移单元2103,还用于在所述轮询单元查询到所述任务存在N笔后续任务,则将所述N笔后续任务移入所述待执行列队等待执行,其中N为大于等于1的整数;
终止单元2106,用于在所述轮询单元查询到所述待执行任务队列、所述执行中任务队列以及已执行任务队列都为空时,则终止所述批处理。
进一步的,所述获取单元2102还用于在所述判断单元判断所述批处理不为新的任务,则查询所述批处理的任务状态,获取所述批处理的执行步骤。
请参阅图8,图8为本发明实施例提供的一种批处理中止模块的结构示意图。如图8所示,该批处理中止模块可以包括以下步骤:
停止单元2201,用于根据所述批处理中止请求,停止所述批处理任务调度,
执行单元2202,用于在所述停止单元停止所述批处理任务调度后,继续执行批处理任务状态为执行中的批处理任务;
中止单元2203,用于在所有执行中的批处理任务处理完成后,中止所述批处理。
请参阅图9,图9为本发明实施例提供的一种批处理错误恢复模块的结构示意图。如图9所示,该批处理错误恢复模块可以包括以下步骤:
接收单元2301,还用于在接收所述批处理执行请求之前,接收所述用户终端发送的批处理错误恢复请;
判断单元2302,用于判断所述批处理是否可恢复;
恢复单元2303,用于在所述判断单元判断所述批处理可恢复时,恢复所述批处理;
返回单元2304,用于在所述判断单元判断所述批处理不可恢复时,向所述用户终端返回提示信息提示用户对所述批处理进行修复;
执行模块2305,用于在所述批处理恢复成功后,执行所述批处理。
请参阅图10,图10为本发明实施例提供的一种批处理任务分片模块的结构示意图。如图10所示,该批处理任务分片模块可以包括以下步骤:
接收单元2401,用于在接收所述批处理执行请求之前,接收所述用户终端发送的批处理任务分片请求;
获取单元2402,用于根据所述批处理任务分片请求,获取待分片的批处理任务;
判断单元2403,用于判断所述待分片的批处理任务是否分片完毕;
处理单元2403,用于在所述判断单元判断所述批处理任务未分片完毕时,继续所述批处理任务分片处理,并返回下一个待分片的批处理任务;
终止单元2404,用于在所述判断单元判断所述批处理任务分片完毕时,终止所述批处理分片任务。
进一步的,所述接收单元201接收批处理执行请求之前,所述判断单元2101还用于判断是否存在与所述批处理相对应的批处理调度逻辑。
创建单元,用于在所述判断单元判断存在与所述批处理相对应的批处理调度逻辑时,根据所述批处理的编号和中心编号创建所述批处理调度逻辑,所述批处理调度逻辑持有3个任务调度状态集合,分别为待执行作业队列、执行中作业队列和已执行作业队列。
抛出单元,用于在所述判断单元判断不存在与所述批处理相对应的批处理调度逻辑,且所述批处理调度逻辑处于运行状态时,抛出错误异常。
进一步的,在所述接收单元201接收批处理装置自动触发的批处理执行请求之后,校验单元,用于校验当日日期是否符合所述校验条件;
所述判断单元2101,还用于在所述校验单元校验当日日期符合所述校验条件时,判断所述批处理执行请求是否已触发。
所述获取单元2102,还用于所述校验单元校验当日日期不符合所述校验条件时,获取所述批处理的状态;
返回单元,用于在所述批处理状态为执行中或已完成时,向所述用户终端返回正在执行或已完成的提示信息。
恢复单元,用于在所述批处理状态为出错时,恢复所述批处理,并在恢复成功后,重启所述批处理。
所述返回单元,还用于在所述批处理状态为异常中止或调度异常时,向所述用户终端返回未修复,不允许执行的提示信息。
所述返回单元,还用于在所述校验单元校验当日日期不符合所述校验条件时,向所述用户终端发返回调度异常的提示信息。
所述执行模块202,还用于在所述判断单元判断所述批处理执行请求未触发时,执行所述批处理操作。
进一步的,在所述执行模块202执行所述批处理过程中,所述中止模块203,还用于在批处理执行中,若检测到批处理任务调度异常时,中止所述批处理。
所述判断单元2101,还用于在批处理执行中,若检测到批处理任务执行异常时,根据所述批处理任务的属性判断所述任务是否重试,所述任务的属性包括可重试、中止和可跳过;
所述中止模块203,还用于在所述任务属性为可重试时,重新执行所述任务,当重试次数超过指定次数后,所述任务仍执行错误时,中止所述批处理;
所述中止模块203,还用于在所述任务属性为中止时,中止所述批处理;
所述执行模块202,还用于在所述任务属性为可跳过,跳过所述执行异常的任务,继续执行所述批处理。
进一步的,发送单元,用于在所述批处理任务执行完成、批处理任务调度异常导致所述批处理中止或批处理任务执行异常导致所述批处理中止时,通过短信的方式向所述预先绑定的电子设备发送提示信息,所述提示信息携带所述批处理的任务状态。
本发明实施例中,接收单元201接收批处理执行请求,执行模块202根据所述批处理执行请求,执行所述批处理操作,在所述批处理执行过程中,接收单元201接收用户终端发送的批处理中止请求,中止模块203根据所述批处理中止请求,中止所述批处理操作,更新单元204当所述批处理中止后,将所述批处理任务状态更新为已中止,实现了在执行批处理过程中系统可接收外部指令进行适应性调整,从而提升了系统的处理效率及利用率。
本领域普通技术人员可以理解实现上述实施例方法中的全部或部分流程,是可以通过计算机程序来指令相关的硬件来完成,所述的程序可存储于—计算机可读取存储介质中,该程序在执行时,可包括如上述各方法的实施例的流程。其中,所述的存储介质可为磁碟、光盘、只读存储记忆体(Read-Only Memory,ROM)或随机存储记忆体(Random AccessMemory,RAM)等。
以上所揭露的仅为本发明较佳实施例而已,当然不能以此来限定本发明之权利范围,因此依本发明权利要求所作的等同变化,仍属本发明所涵盖的范围。
Claims (20)
1.一种批处理的方法,其特征在于,包括:
接收批处理执行请求,根据所述批处理执行请求,执行所述批处理操作;
在所述批处理执行过程中,接收用户终端发送的批处理中止请求;
根据所述批处理中止请求,中止所述批处理操作,当所述批处理中止后,将所述批处理任务状态更新为已中止;
所述根据所述批处理执行请求,执行所述批处理操作,包括:
判断所述批处理是否为新的任务,若所述批处理为新的任务,则获取待处理任务,并将所述待处理任务移入待执行队列中;
轮询所述待执行队列,将任务状态为待执行、执行中或错误的任务移入线程池中进行处理,并将任务移入执行中列队;
轮询所述执行中队列,将任务状态为已完成的任务移入已执行列队中;
轮询所述已执行队列,查询任务状态为已完成的任务是否存在后续任务,若任务存在N笔后续任务,则将所述N笔后续任务移入所述待执行列队等待执行,其中N为大于等于1的整数;
当查询到所述待执行任务队列、所述执行中任务队列以及已执行任务队列都为空时,则终止所述批处理;
所述接收批处理执行请求,包括:
接收批处理装置自动触发的批处理执行请求;
所述接收批处理装置自动触发的批处理执行请求之后,还包括:
校验当日日期是否符合校验条件,若符合所述校验条件,则判断所述批处理执行请求是否已触发;
若所述批处理已触发,则获取所述批处理的状态;
若所述批处理状态为执行中或已完成,则向所述用户终端返回正在执行或已完成的提示信息;
若所述批处理状态为出错,则恢复所述批处理,并在恢复成功后,执行所述批处理;
若所述批处理状态为异常中止,向所述用户终端返回未修复,不允许执行的提示信息。
2.根据权利要求1所述的方法,其特征在于,所述根据所述批处理中止请求,中止所述批处理操作,包括:
根据所述批处理中止请求,停止所述批处理任务调度,并继续执行批处理任务状态为执行中的批处理任务,当所有执行中的批处理任务处理完成后,中止所述批处理。
3.根据权利要求1所述的方法,其特征在于,还包括:
若所述批处理不为新的任务,则查询所述批处理的任务状态,获取所述批处理的执行步骤。
4.根据权利要求1所述的方法,其特征在于,所述接收批处理执行请求之前,还包括:
判断是否存在与所述批处理相对应的批处理调度逻辑;
若存在与所述批处理相对应的批处理调度逻辑,则根据所述批处理的编号和中心编号创建所述批处理调度逻辑,所述批处理调度逻辑持有3个任务调度状态集合,分别为待执行作业队列、执行中作业队列和已执行作业队列;
若不存在与所述批处理相对应的批处理调度逻辑,且所述批处理调度逻辑处于运行状态时,则抛出错误异常。
5.根据权利要求1所述的方法,其特征在于,所述方法还包括:
若校验当日日期不符合所述校验条件,则向所述用户终端返回调度异常的提示信息。
6.根据权利要求1所述的方法,其特征在于,所述方法还包括:
若判断所述批处理执行请求未触发,则执行所述批处理操作。
7.根据权利要求1所述的方法,其特征在于,所述方法还包括:
在批处理执行中,若检测到批处理任务调度异常,则中止所述批处理;
在批处理执行中,若检测到批处理任务执行异常,则根据所述批处理任务的属性判断所述任务是否重试,所述任务的属性包括可重试、中止和可跳过;
若所述任务属性为可重试,则重新执行所述任务,当重试次数超过指定次数后,所述任务仍执行错误,则中止所述批处理;
若所述任务属性为中止,则中止所述批处理;
若所述任务属性为可跳过,则跳过所述执行异常的任务,继续执行所述批处理。
8.根据权利要求1所述的方法,其特征在于,所述接收批处理执行请求之前,还包括:
接收所述用户终端发送的批处理错误恢复请求 ;
判断所述批处理是否可恢复,若所述批处理可恢复,则恢复所述批处理;
若所述批处理不可恢复,则向所述用户终端返回提示信息提示用户对所述批处理进行修复,当所述批处理恢复成功后,重启所述批处理。
9.根据权利要求1所述的方法,其特征在于,所述接收批处理执行请求之前,还包括:
接收所述用户终端发送的批处理任务分片请求;
根据所述批处理任务分片请求,获取待分片的批处理任务;
判断所述待分片的批处理任务是否分片完毕;
若所述批处理任务未分片完毕,则继续所述批处理任务分片处理,并返回下一个待分片的批处理任务;
若判断所述批处理任务分片完毕,则终止所述批处理分片任务。
10.根据权利要求1或7所述的方法,其特征在于,所述方法还包括:
在所述批处理任务执行完成、批处理任务调度异常导致所述批处理中止或批处理任务执行异常导致所述批处理中止时,通过短信的方式向预先绑定的电子设备发送提示信息,所述提示信息携带所述批处理的任务状态。
11.一种批处理的装置,其特征在于,包括:
接收单元,用于接收批处理执行请求;
执行模块,用于所述批处理执行请求,执行所述批处理操作;
接收单元,还用于在所述批处理执行过程中,接收用户终端发送的批处理中止请求;
中止模块,用于根据所述批处理中止请求,中止所述批处理操作;
更新单元,用于当所述批处理中止后,将所述批处理任务状态更新为已中止;
所述执行模块包括:
判断单元,用于判断所述批处理是否为新的任务;
获取单元,用于在所述判断单元判断所述批处理为新的任务时,获取待处理任务;
转移单元,用于将所述待处理任务移入待执行队列中;
查询单元,用于在所述判断单元所述批处理不为新的任务时,查询所述批处理的任务状态;
所述获取单元,还用于根据所述查询单元查询查询所述批处理的任务状态,获取所述批处理的执行步骤;
轮询单元,用于轮询所述待执行队列;
所述转移单元,还用于将任务状态为待执行、执行中或错误的任务移入线程池中进行处理,并将任务移入执行中列队;
所述轮询单元,还用于轮询所述执行中队列;
所述转移单元,还用于将任务状态为已完成的任务移入已执行列队中;
所述轮询单元,还用于轮询所述已执行队列,查询任务状态为已完成的任务是否存在后续任务;
所述转移单元,还用于在所述轮询单元查询到所述任务存在N笔后续任务,则将所述N笔后续任务移入所述待执行列队等待执行,其中N为大于等于1的整数;
终止单元,用于在所述轮询单元查询到所述待执行任务队列、所述执行中任务队列以及已执行任务队列都为空时,则终止所述批处理;
所述接收单元,具体用于接收到所述用户终端触发的或批处理装置自动触发的批处理执行请求;
所述接收单元接收批处理装置自动触发的批处理执行请求之后:
校验单元,用于校验当日日期是否符合校验条件;
所述判断单元,还用于在所述校验单元校验当日日期符合所述校验条件时,判断所述批处理执行请求是否已触发;
所述获取单元,还用于所述校验单元校验当日日期不符合所述校验条件时,获取所述批处理的状态;
返回单元,用于在所述批处理状态为执行中或已完成时,向所述用户终端返回正在执行或已完成的提示信息;
恢复单元,用于在所述批处理状态为出错时,恢复所述批处理,并在恢复成功后,重启所述批处理;
所述返回单元,还用于在所述批处理状态为异常中止或调度异常时,向所述用户终端返回未修复,不允许执行的提示信息。
12.根据权利要求11所述的装置,其特征在于,所述中止模块包括:
停止单元,用于根据所述批处理中止请求,停止所述批处理任务调度;
执行单元,用于在所述停止单元停止所述批处理任务调度后,继续执行批处理任务状态为执行中的批处理任务;
中止单元,用于在所有执行中的批处理任务处理完成后,中止所述批处理。
13.根据权利要求11所述的装置,其特征在于,所述获取单元还用于在所述判断单元判断所述批处理不为新的任务,则查询所述批处理的任务状态,获取所述批处理的执行步骤。
14.根据权利要求11所述的装置,其特征在于,在所述接收单元接收批处理执行请求之前:
所述判断单元,还用于判断是否存在与所述批处理相对应的批处理调度逻辑;
创建单元,用于在所述判断单元判断存在与所述批处理相对应的批处理调度逻辑时,根据所述批处理的编号和中心编号创建所述批处理调度逻辑,所述批处理调度逻辑持有3个任务调度状态集合,分别为待执行作业队列、执行中作业队列和已执行作业队列;
抛出单元,用于在所述判断单元判断不存在与所述批处理相对应的批处理调度逻辑,且所述批处理调度逻辑处于运行状态时,抛出错误异常。
15.根据权利要求11所述的装置,其特征在于:
所述返回单元,还用于在所述校验单元校验当日日期不符合所述校验条件时,向所述用户终端发返回调度异常的提示信息。
16.根据权利要求11所述的装置,其特征在于:
所述执行模块,还用于在所述判断单元判断所述批处理执行请求未触发时,执行所述批处理操作。
17.根据权利要求11所述的装置,其特征在于:
所述中止模块,还用于在批处理执行中,若检测到批处理任务调度异常时,中止所述批处理;
所述判断单元,还用于在批处理执行中,若检测到批处理任务执行异常时,根据所述批处理任务的属性判断所述任务是否重试,所述任务的属性包括可重试、中止和可跳过;
所述中止模块,还用于在所述任务属性为可重试时,重新执行所述任务,当重试次数超过指定次数后,所述任务仍执行错误时,中止所述批处理;
所述中止模块,还用于在所述任务属性为中止时,中止所述批处理;
所述执行模块,还用于在所述任务属性为可跳过,跳过所述执行异常的任务,继续执行所述批处理。
18.根据权利要求11所述的装置,其特征在于,所述接收单元接收批处理执行请求之前:
所述接收单元,还用于接收所述用户终端发送的批处理错误恢复请;
所述判断单元,还用于判断所述批处理是否可恢复;
所述恢复单元,还用于在所述判断单元判断所述批处理可恢复时,恢复所述批处理;
所述返回单元,还用于在所述判断单元判断所述批处理不可恢复时,向所述用户终端返回提示信息提示用户对所述批处理进行修复;
所述执行模块,还用于在所述批处理恢复成功后,执行所述批处理。
19.根据权利要求11所述的装置,其特征在于,所述接收批处理执行请求之前:
所述接收单元,还用于接收所述用户终端发送的批处理任务分片请求;
所述获取单元,还用于根据所述批处理任务分片请求,获取待分片的批处理任务;
所述判断单元,还用于判断所述待分片的批处理任务是否分片完毕;
处理单元,用于在所述判断单元判断所述批处理任务未分片完毕时,继续所述批处理任务分片处理,并返回下一个待分片的批处理任务;
终止单元,用于在所述判断单元判断所述批处理任务分片完毕时,终止所述批处理分片任务。
20.根据权利要求11或17所述的装置,其特征在于:
发送单元,用于在所述批处理任务执行完成、批处理任务调度异常导致所述批处理中止或批处理任务执行异常导致所述批处理中止时,通过短信的方式向预先绑定的电子设备发送提示信息,所述提示信息携带所述批处理的任务状态。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201410594325.7A CN104407847B (zh) | 2014-10-29 | 2014-10-29 | 一种批处理的方法及装置 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201410594325.7A CN104407847B (zh) | 2014-10-29 | 2014-10-29 | 一种批处理的方法及装置 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN104407847A CN104407847A (zh) | 2015-03-11 |
CN104407847B true CN104407847B (zh) | 2019-05-07 |
Family
ID=52645480
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201410594325.7A Active CN104407847B (zh) | 2014-10-29 | 2014-10-29 | 一种批处理的方法及装置 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN104407847B (zh) |
Families Citing this family (21)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN106161393B (zh) * | 2015-04-17 | 2020-04-24 | 伊姆西Ip控股有限责任公司 | 实现多个内容管理服务操作的方法和装置 |
CN105404655A (zh) * | 2015-11-03 | 2016-03-16 | 上海斐讯数据通信技术有限公司 | 一种数据处理方法及系统 |
CN105446807B (zh) * | 2015-11-10 | 2018-10-19 | 中国建设银行股份有限公司 | 批处理方法及装置 |
CN105511975B (zh) * | 2015-11-27 | 2019-06-04 | 北京奇虎科技有限公司 | 一种异常处理方法和装置 |
CN105487924B (zh) * | 2015-11-30 | 2018-12-14 | 中国建设银行股份有限公司 | 一种批处理控制方法及装置 |
CN106936688B (zh) * | 2015-12-30 | 2020-11-24 | 北京国双科技有限公司 | 通知发送方法和装置 |
CN106484912A (zh) * | 2016-10-26 | 2017-03-08 | 乐视控股(北京)有限公司 | 一种云盘资源的处理方法和装置 |
CN106775973A (zh) * | 2016-12-07 | 2017-05-31 | 北京奇虎科技有限公司 | 移动终端以及应用的入口信息批量转移的方法和装置 |
CN106802826B (zh) * | 2016-12-23 | 2021-06-18 | 中国银联股份有限公司 | 一种基于线程池的业务处理方法及装置 |
CN106775985A (zh) * | 2016-12-26 | 2017-05-31 | 中国建设银行股份有限公司 | 一种批处理任务调度方法及装置 |
CN107689007A (zh) * | 2017-04-25 | 2018-02-13 | 平安科技(深圳)有限公司 | 税优保单凭证生成方法、装置及计算机可读存储介质 |
CN107301057A (zh) * | 2017-07-28 | 2017-10-27 | 山东中创软件工程股份有限公司 | 一种大数据批处理方法及装置 |
CN107885590A (zh) * | 2017-11-30 | 2018-04-06 | 百度在线网络技术(北京)有限公司 | 用于智能设备的任务处理方法和装置 |
CN108154431B (zh) * | 2018-01-17 | 2021-07-06 | 北京网信云服信息科技有限公司 | 一种标的募集状态处理方法及装置 |
CN109491779A (zh) * | 2018-11-23 | 2019-03-19 | 南京云帐房网络科技有限公司 | 一种批量报税方法和装置 |
CN109710442A (zh) * | 2018-12-20 | 2019-05-03 | 麒麟合盛网络技术股份有限公司 | 一种任务的执行方法和装置 |
CN109684095B (zh) * | 2018-12-26 | 2021-03-23 | 北京奇艺世纪科技有限公司 | 一种任务处理方法及任务分配设备 |
CN110471753B (zh) * | 2019-08-15 | 2022-08-26 | 中国银行股份有限公司 | 批量调度系统的控制方法及装置 |
CN110727539A (zh) * | 2019-12-19 | 2020-01-24 | 北京江融信科技有限公司 | 批处理任务中的异常处理方法、系统及电子设备 |
CN117751351A (zh) * | 2021-12-27 | 2024-03-22 | 宁德时代新能源科技股份有限公司 | 任务调度方法及多核处理器系统 |
CN114880194B (zh) * | 2022-07-08 | 2022-09-13 | 天津金城银行股份有限公司 | 服务异常监控方法、装置、电子设备及计算机存储介质 |
Citations (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN1859355A (zh) * | 2005-12-28 | 2006-11-08 | 华为技术有限公司 | 一种对批量业务进行处理的方法 |
CN101000562A (zh) * | 2006-12-30 | 2007-07-18 | 中国建设银行股份有限公司 | 一种执行批处理作业的方法及装置 |
CN101710411A (zh) * | 2009-12-01 | 2010-05-19 | 中国建设银行股份有限公司 | 一种实时任务处理方法及其设备 |
CN102722355A (zh) * | 2012-06-04 | 2012-10-10 | 南京中兴软创科技股份有限公司 | 基于工作流机制的并发式etl转换方法 |
CN102981904A (zh) * | 2011-09-02 | 2013-03-20 | 阿里巴巴集团控股有限公司 | 一种任务调度方法及系统 |
CN103760878A (zh) * | 2007-05-15 | 2014-04-30 | 费舍-柔斯芒特系统股份有限公司 | 在过程系统中用于批处理及执行的方法及系统 |
Family Cites Families (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US9946563B2 (en) * | 2012-02-21 | 2018-04-17 | Disney Enterprises, Inc. | Batch scheduler management of virtual machines |
-
2014
- 2014-10-29 CN CN201410594325.7A patent/CN104407847B/zh active Active
Patent Citations (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN1859355A (zh) * | 2005-12-28 | 2006-11-08 | 华为技术有限公司 | 一种对批量业务进行处理的方法 |
CN101000562A (zh) * | 2006-12-30 | 2007-07-18 | 中国建设银行股份有限公司 | 一种执行批处理作业的方法及装置 |
CN103760878A (zh) * | 2007-05-15 | 2014-04-30 | 费舍-柔斯芒特系统股份有限公司 | 在过程系统中用于批处理及执行的方法及系统 |
CN101710411A (zh) * | 2009-12-01 | 2010-05-19 | 中国建设银行股份有限公司 | 一种实时任务处理方法及其设备 |
CN102981904A (zh) * | 2011-09-02 | 2013-03-20 | 阿里巴巴集团控股有限公司 | 一种任务调度方法及系统 |
CN102722355A (zh) * | 2012-06-04 | 2012-10-10 | 南京中兴软创科技股份有限公司 | 基于工作流机制的并发式etl转换方法 |
Non-Patent Citations (1)
Title |
---|
spring batch(二):核心部分(2)Spring batch的启动;chshe509;《URL: http://blog.csdn.net/chshe509/article/details/34101335》;20140624;参见第1-5页 |
Also Published As
Publication number | Publication date |
---|---|
CN104407847A (zh) | 2015-03-11 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN104407847B (zh) | 一种批处理的方法及装置 | |
CN106201672B (zh) | 一种定时任务设置系统及其定时任务运行方法 | |
US8762929B2 (en) | System and method for exclusion of inconsistent objects from lifecycle management processes | |
US20150100829A1 (en) | Method and system for selecting and executing test scripts | |
US10437689B2 (en) | Error handling for services requiring guaranteed ordering of asynchronous operations in a distributed environment | |
CN110673936B (zh) | 编排业务的断点续作方法、装置、存储介质及电子设备 | |
WO2015183809A1 (en) | Method and apparatus of prompting an update of an application | |
US8849929B2 (en) | Applying actions to item sets within a constraint | |
US20150100830A1 (en) | Method and system for selecting and executing test scripts | |
US10204012B2 (en) | Impact analysis-based task redoing method, impact analysis calculation apparatus, and one-click resetting apparatus | |
CN104461747A (zh) | 一种分布式任务调度系统 | |
US20130198722A1 (en) | Managing transactions within a middleware container | |
CN104182683A (zh) | 一种联机事务的监控方法、装置及系统 | |
US11074112B2 (en) | Maintaining the responsiveness of a user interface while performing a synchronous operation | |
WO2020253045A1 (zh) | 配置化的数据转发异常补处理方法、装置及可读存储介质 | |
US10466761B2 (en) | Power system monitoring and control system | |
JP2017520858A (ja) | サーバー・プラットフォーム上においてアトミック・タスクを開始するときにおける制御 | |
CN106201667B (zh) | 一种用户指令队列管理系统及方法 | |
CN111078442A (zh) | 容错重试方法及装置、终端 | |
CN110874713A (zh) | 业务状态管理方法与装置 | |
CN111190725B (zh) | 任务处理方法、装置、存储介质及服务器 | |
CN111177232B (zh) | 一种数据处理方法、装置、系统和存储介质 | |
CN112667255A (zh) | 更新方法、装置、电子设备及存储介质 | |
CN115248827A (zh) | 分布式事务提交方法及装置 | |
CN107239474B (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 |