一种调度任务的方法和系统技术方案

技术编号:17265065 阅读:51 留言:0更新日期:2018-02-14 12:26
本发明专利技术提供一种调度任务的方法和系统,由于采用了消息队列,实现多台服务器同时处理任务,在提高了任务的吞吐量的同时也避免了单台服务器单任务串行处理的弊端;并且在任务处理失败率增高时,能够切换到不同机房对应的消息队列,提高了任务调度系统的容灾能力。本发明专利技术的方法包括:保存模块保存消息队列与执行模块之间的关联关系;生成模块在当有任务需要处理时,生成该任务的任务消息;确定模块根据预设的消息存放规则确定任务消息所属的消息队列,然后将任务消息存入消息队列中;执行模块监听与该执行模块之间有关联关系的消息队列的通知消息,在监听到通知消息后获取消息队列中的任务消息,然后在获取到该任务消息后将该任务消息发送给供应商。

A method and system for scheduling tasks

The present invention provides a method and system for scheduling tasks, the message queue, realize multiple servers and processing tasks, improve the throughput of the task but also to avoid the disadvantages of a single server single task serial processing; and the task failure rate increased, able to switch to a different room corresponding to the message queue, improve the ability of disaster recovery task scheduling system. The method of the invention includes: the relationship between the storage module and execution module to save the message queue; generating module when there are tasks to be done, the task of generating task message; determining module according to the preset information stored the task rules to determine the message queue, and then stored in the message queue task message notification; there is correlation between the message execution module and monitor the execution module message queue, in listening to the notification message after obtaining task message in the message queue, then get the task message after sending the message to the supplier task.

【技术实现步骤摘要】
一种调度任务的方法和系统
本专利技术涉及计算机及其软件
,特别涉及一种调度任务的方法和系统。
技术介绍
随着电商的快速发展,其包含的商品的种类也越来越多,所需要的商品的供应商也随之增多,当客户在电商客户端下了订单后,电商后台会根据客户的订单调用对应的供应商接口,将订单的相关信息发送给供应商。通常当订单任务满足自动执行条件时,电商平台的任务调度系统需要按照设定好的步骤去自动处理,此时会用到基于时间调度任务的场景,在这些场景中需要实现在特定时间点或者时间间隔内运行任务程序的功能。当存在大量的任务需要处理时,单任务处理模式势必降低数据处理能力。现有的技术方案中,通常引入开源工具包Quartz实现任务的定时调度,同时可以通过配置文件调整定时参数以实现任务调度系统启动后(如果有多台机器,也只能启动在指定的一台机器上)可以自行工作。任务调度系统启动后需要根据所设置的定时时间运行,每一次运行时从数据库中获取一个区间的数据作为处理的对象,并且无论数据库中是否有数据都需要扫描一次。任务调度系统在获取到数据后需要一个一个的处理,处理完一个再执行下一个;这一批数据处理完后待定时任务下一次触发再继续上本文档来自技高网...
一种调度任务的方法和系统

【技术保护点】
一种调度任务的方法,其特征在于,包括:保存模块保存消息队列与执行模块之间的关联关系;生成模块在当有任务需要处理时,生成该任务的任务消息;确定模块根据预设的消息存放规则确定所述任务消息所属的消息队列,然后将所述任务消息存入所述消息队列中;执行模块监听与该执行模块之间有关联关系的消息队列的通知消息,在监听到通知消息后获取所述消息队列中的任务消息,然后在获取到该任务消息后将该任务消息发送给供应商。

【技术特征摘要】
1.一种调度任务的方法,其特征在于,包括:保存模块保存消息队列与执行模块之间的关联关系;生成模块在当有任务需要处理时,生成该任务的任务消息;确定模块根据预设的消息存放规则确定所述任务消息所属的消息队列,然后将所述任务消息存入所述消息队列中;执行模块监听与该执行模块之间有关联关系的消息队列的通知消息,在监听到通知消息后获取所述消息队列中的任务消息,然后在获取到该任务消息后将该任务消息发送给供应商。2.根据权利要求1所述的方法,其特征在于,根据预设的消息存放规则确定所述任务消息所属的消息队列的步骤包括:根据所述任务消息的业务标识确定该业务标识所对应的供应商;在当前记录的队列容错数据中查找与所述供应商连接失败的消息队列,并将该消息队列作为无效消息队列;将除去所述无效消息队列之后的剩余队列的队列标识与当前记录的队列容错数据中的队列标识依次进行比对,如果比对失败,则确认该队列是容错数值为0的有效队列;如果比对成功,则将队列标识所对应的容错数值与预设容错阈值进行比较,然后将容错数值不大于预设容错阈值的消息队列作为有效队列;将所述有效队列按照容错数值升序排列,并将排在第一位的队列作为所述任务消息存放的消息队列。3.根据权利要求1所述的方法,其特征在于,所述获取所述消息队列中的任务消息的步骤之后,还包括:在获取到该任务消息后,锁定该条任务消息。4.根据权利要求1所述的方法,其特征在于,所述任务消息包括消息标识;所述将该任务消息发送给供应商的步骤之前,还包括:执行模块根据所述消息标识确认该任务消息的消息类型;所述消息类型包括初次任务消息和非初次任务消息;并且所述将该任务消息发送给供应商的步骤包括:在确认该任务消息的消息类型为初次任务消息的前提下,将该初次任务发送给供应商;在确认该任务消息的消息类型为给初次任务消息的前提下,将该非初次任务发送给供应商。5.根据权利要求4所述的方法,其特征在于,执行模块根据所述消息标识确认该任务消息的消息类型的步骤包括:判断缓存中是否包含该消息标识所对应的消息执行参数,若是,则确认该任务消息为非初次任务消息;否则,确认该任务消息为初次任务消息。6.根据权利要求5所述的方法,其特征在于,所述确认该任务消息为初始任务消息的步骤之后包括:设置该初次任务消息的消息执行参数,然后将设置好消息执行参数的初次任务消息发送给供应商;所述消息执行参数包括重试阈值。7.根据权利要求5所述的方法,其特征在于,所述任务消息包括重试时间间隔;所述确认该任务消息为非初次任务消息的步骤之后包括:根据该非初次任务消息的重试时间间隔确定是否执行该非初次任务消息,如果是,则将该非初次任务消息发送给供应商;否则,生成该非初次任务消息的重试任务消息,然后将该重试任务消息放回消息队列中。8.根据权利要求6所述的方法,其特征在于,所述将该初次任务消息发送给供应商的步骤之后,还包括:接收供应商返回的接收状态消息,然后在接收到返回的接收状态消息为接收失败时,生成所发送的初次任务消息的重试任务消息,然后将该重试任务消息放回消息队列中。9.根据权利要求7所述的方法,其特征在于,所述将该非初次任务消息发送给供应商的步骤之后,还包括:接收供应商返回的接收状态消息,然后在接收到返回的接收状态消息为接收失败时,生成所发送的非初次任务消息的重试任务消息,然后将该重试任务消息放回消息队列中。10.根据权利要求8所述的方法,其特征在于,所述生成所发送的初次任务消息的重试任务消息的步骤之前,还包括:将该初次任务消息中的重试次数加1,然后判断加1后的重试次数是否大于消息标识所对应的消息执行参数中的重试阈值,若是,则删除所述初次任务消息;否则,继续执行步骤生成所发送的初次任务消息的重试任务消息。11.根据权利要求9所述的方法,其特征在于,所述生成所发送的非初次任务消息的重试任务消息的步骤之前,还包括:将该非初次任务消息中的重试次数加1,然后判断加1后的重试次数是否大于消息标识所对应的消息执行参数中的重试阈值,若是,则删除所述非初次任务消息;否则,继续执行步骤生成所发送的非初次任务消息的重试任务消息。12.根据权利要求8所述的方法,其特征在于,所述生成所发送的初次任务消息的重试任务消息的步骤之前,还包括:记录任务消息所属的消息队列与该供应商之间的连接失败消息,以及根据该连接失败消息更新队列容错数据;并且所述将该重试任务消息放回消息队列中的步骤之前,还包括:根据更新后的队列容错数据确定有效队列,然后该重试任务放入确定的有效消息队列中。13.根据权利要求9所述的方法,其特征在于,所述生成所发送的非初次任务消息的重试任务消息的步骤之前,还包括:记录任务消息所属的消息队列与该供应商之间的连接失败消息,以及根据该连接失败消息更新队列容错数据;并且所述将该重试任务消息放回消息队列中的步骤之前,还包括:根据更新后的队列容错数据确定有效队列,然后该重试任务放入确定的有效消息队列中。14.根据权利要求12或13所述的方法,其特征在于,所述任务消息包括队列标识;根据该连接失败消息更新队列容错数据的步骤包括:将所述任务消息所属的消息队列的队列标识与队列容错数据中的队列标识进行比对,如果比对成功,则将该队列标识所对应的容错数值加1,同时记录该队列标识对应的连接失败的供应商;否则,记录该队列标识以及将该队列标识的容错数值设为1,同时记录该队列标识对应的连接失败的供应商。15.根据权利要求12或13所述的方法,其特征在于,根据更新后的队列容错数据确定有效队列的步骤包括:在更新的队列容错数据中查找与所述供应商连接失败的消息队列,并将该消息队列作为无效消息队列;将除去所述无效消息队列之后的剩余队列的队列标识与更新后的队列容错数据中的队列标识依次进行比对,如果比对失败,则确认该队列是容错数值为0的有效队列;如果比对成功,则将队列标识所对应的容错数值与预设容错阈值进行比较,然后将容错数值不大于预设容错阈值的消息队列作为有效队列;将所述有效队列按照容错数值升序排列,...

【专利技术属性】
技术研发人员:李宝刚王记学
申请(专利权)人:北京京东尚科信息技术有限公司北京京东世纪贸易有限公司
类型:发明
国别省市:北京,11

网友询问留言 已有0条评论
  • 还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。

1