The present invention provides a timing device and method of executing tasks in parallel multiple servers, unified configuration can realize the server nodes and make full use of limited computing resources, support to ensure atomicity tasks, reduce maintenance cost, solve the problem of single point failure and avoid business from a single point of failure and stagnation, without manual intervention server downtime, support large split task, application developers only need to focus on specific business development, availability and scalability. The present invention includes timing tasks in a parallel implementation method of multiple servers: receiving each server node submitted task instance request sign, according to a predetermined rule to sign on the task instance, and the sign of success is added to the execution of the task instance makes the corresponding server executes the task instance task list; polling the task instance the task list on the execution state of the completed task instance and return from the task instance is removed from the task list.
【技术实现步骤摘要】
一种定时任务在多个服务器的并行执行方法和装置
本专利技术涉及计算机及其软件
,特别地涉及一种定时任务在多个服务器的并行执行方法和装置。
技术介绍
在大量的应用系统中存在定时任务的场景,例如,在应用系统的实际开发过程中存在大量无需人工干预又需定期执行的系统后台任务,这些定时任务往往不可避免的要考虑到单点问题、协同问题和拆分问题,这就需要一套完整的解决方案去支撑系统的有效运行。利用SpringQuartz可以高效地支持这种定时任务调度场景,让这些后台任务可以在指定的时间按照指定的策略自动化运行。Quartz是一款优秀的企业级任务调度引擎,Spring对其进行了很好地封装,使Quartz高效集成,大大简化了应用开发人员对Quartz特性的使用成本,只需要通过简单的一些配置,便可使应用具备企业级的任务调度特性,从而使开发人员可以高效地将其应用到实际业务中。此外,Java为了降低多线程场景频繁创建和销毁线程所带来的资源消耗,为开发者提供了线程池技术,通过重复利用已创建的线程降低线程创建和销毁造成的消耗,同时提高线程的可管理性,使用线程池可以对多线程进行统一的分配、调优和监控。现有的定时任务调度及执行方案利用了上述SpringQuartz和线程池技术的特性,主要解决方案包括:1、通过使用SpringQuartz在指定的时间频率启动定时任务,通常还会配合线程池技术在单机上完成相应的业务处理;2、为了防止多台服务器的定时任务在同一时间并发执行的问题(并发执行很有可能导致业务处理重复),通常单一业务只会在单一服务器上节点进行配置。在这种情况下,一旦节点宕机,则定时任务 ...
【技术保护点】
一种定时任务在多个服务器的并行执行方法,其特征在于,其中,在各服务器节点分别生成各自的任务实例并且为各服务器节点配置相同的定时时间,当达到所述定时时间时,在各服务器节点分别启动任务实例以发送签到请求,各任务实例具有各自的任务类型和任务标识;所述方法包括:接收各服务器节点提交的任务实例的签到请求,按照预定规则对该任务实例进行签到,并把签到成功的任务实例添加到任务执行列表使得相应服务器执行该任务实例;轮询所述任务执行列表中各任务实例的执行状态,对执行完毕的任务实例进行签退并从所述任务执行列表中移除该任务实例。
【技术特征摘要】
1.一种定时任务在多个服务器的并行执行方法,其特征在于,其中,在各服务器节点分别生成各自的任务实例并且为各服务器节点配置相同的定时时间,当达到所述定时时间时,在各服务器节点分别启动任务实例以发送签到请求,各任务实例具有各自的任务类型和任务标识;所述方法包括:接收各服务器节点提交的任务实例的签到请求,按照预定规则对该任务实例进行签到,并把签到成功的任务实例添加到任务执行列表使得相应服务器执行该任务实例;轮询所述任务执行列表中各任务实例的执行状态,对执行完毕的任务实例进行签退并从所述任务执行列表中移除该任务实例。2.根据权利要求1所述的方法,其特征在于,所述预定规则包括:当相同任务标识的其他任务实例已被添加到所述任务执行列表,则签到失败;当相同任务类型的、达到预设界限值的其他任务实例的已被添加到所述任务执行列表,则签到失败。3.根据权利要求1所述的方法,其特征在于,在各服务器节点中,通过继承预设的并行处理框架提供的基类并添加相应业务逻辑而生成所述任务实例。4.根据权利要求2所述的方法,其特征在于,所述预设界限值为规定的允许执行所述相同任务类型任务实例的服务器数量。5.根据权利要求1所述的方法,其特征在于,所述任务标识具有预设的生存周期,当任务标识的生存周期过期时,该任务标识对应的任务实例被签退。6.一种定时任务在多个服...
【专利技术属性】
技术研发人员:林博辞,
申请(专利权)人:北京京东尚科信息技术有限公司,北京京东世纪贸易有限公司,
类型:发明
国别省市:北京,11
还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。