一种订单执行方法、系统、电子设备和存储介质与流程

文档序号:37070510发布日期:2024-02-20 21:23阅读:11来源:国知局
一种订单执行方法、系统、电子设备和存储介质与流程

本发明涉及订单执行,尤其涉及一种订单执行方法、系统、电子设备和存储介质。


背景技术:

1、目前订单事件消费,是通过定时任务,定时轮询数据库取出一批事件数据,并按订单号分组,同个订单的多个任务交由一个线程顺序执行。等所有线程执行完之后,提取下一批数据。当启用多进程时,需要对每个进程设置序号,再根据订单号取模,每次进程只能提取订单号取模和序号对应的数据。这种问题会造成数据不均,有的进程需要处理的数据多,有的进程却没多少数据需要执行。并且每次加一个进程,都得调整分配规则来重新分配订单,导致效率低下。

2、当订单量增大、待执行的订单事件剧增时,订单事件的消费能力不及生产能力,导致订单事件堆积。


技术实现思路

1、本发明提供了一种订单执行方法,以解决订单执行的问题。

2、第一方面,本发明提供了一种订单执行方法,应用于订单执行系统,订单执行系统设置有redis数据库和多个消费进程,每个所述消费进程包括多个业务线程;所述订单执行控制方法包括:

3、在所述redis数据库接收到订单的任务id时,判断所述redis数据库中是否存在与所述订单对应的任务队列;

4、若是,将所述任务id添加至所述任务队列的末端;

5、若否,根据所述订单的订单号生成所述任务队列,将所述任务id添加至所述任务队列;

6、针对每个所述订单,确定与所述订单对应的目标消费进程;

7、将所述订单对应的所述任务队列中的所述任务id发送给所述目标消费进程;

8、按照所述任务id的排列顺序在所述目标消费进程中执行对应的任务。

9、第二方面,本发明提供了一种订单执行系统,所述订单执行系统设置有redis数据库和多个消费进程,每个所述消费进程包括多个业务线程;

10、所述订单执行系统包括:

11、任务队列判断模块,用于在所述redis数据库接收到订单的任务id时,判断所述redis数据库中是否存在与所述订单对应的任务队列;若是,执行第一添加模块的内容,若否,执行第二添加模块的内容;

12、第一添加模块,用于将所述任务id添加至所述任务队列的末端;

13、第二添加模块,用于根据所述订单的订单号生成所述任务队列,将所述任务id添加至所述任务队列;

14、目标消费进程确定模块,用于针对每个所述订单,确定与所述订单对应的目标消费进程;

15、任务发送模块,用于将所述订单对应的所述任务队列中的所述任务id发送给所述目标消费进程;

16、任务执行模块,用于按照所述任务id的排列顺序在所述目标消费进程中执行对应的任务。

17、第三方面,本发明提供了一种电子设备,所述电子设备包括:

18、至少一个处理器;以及

19、与所述至少一个处理器通信连接的存储器;其中,

20、所述存储器存储有可被所述至少一个处理器执行的计算机程序,所述计算机程序被所述至少一个处理器执行,以使所述至少一个处理器能够执行本发明第一方面所述的订单执行方法。

21、第四方面,本发明提供了一种计算机可读存储介质,所述计算机可读存储介质存储有计算机指令,所述计算机指令用于使处理器执行时实现本发明第一方面所述的订单执行方法。

22、本发明实施例通提供了一种订单执行方法,应用于订单执行系统,订单执行系统设置有redis数据库和多个消费进程,每个消费进程包括多个业务线程;订单执行控制方法包括:在redis数据库接收到订单的任务id时,判断redis数据库中是否存在与订单对应的任务队列;若是,将任务id添加至任务队列的末端;若否,根据订单的订单号生成任务队列,将任务id添加至任务队列;针对每个订单,确定与订单对应的目标消费进程;将订单对应的任务队列中的任务id发送给目标消费进程;按照任务id的排列顺序在目标消费进程中执行对应的任务。

23、第一,由于redis数据库接收到订单的任务id,是将任务id按照先来后到的顺序排列于任务队列中,在后续的任务执行过程中,也是按照任务id的排列顺序在目标消费进程中执行对应的任务,即使订单数据庞大,也可以保障每个订单能够按任务的先后顺序执行。

24、第二,由于设置有多个消费进程,每个消费进程至少可以处理一个订单的任务,即使一个消费进程同时处理两个以上的订单的任务,不同的订单的任务执行过程是相互独立的,有利于提高消费订单的速度和效率,大大增加了生产能力,避免订单事件堆积。

25、应当理解,本部分所描述的内容并非旨在标识本发明的实施例的关键或重要特征,也不用于限制本发明的范围。本发明的其它特征将通过以下的说明书而变得容易理解。



技术特征:

1.一种订单执行方法,其特征在于,应用于订单执行系统,订单执行系统设置有redis数据库和多个消费进程,每个所述消费进程包括多个业务线程;所述订单执行控制方法包括:

2.如权利要求1所述的方法,其特征在于,所述针对每个所述订单,确定与所述订单对应的目标消费进程,包括:

3.如权利要求1所述的方法,其特征在于,在所述将所述订单对应的所述任务队列中的所述任务id发送给所述目标消费进程之前,包括:

4.如权利要求3所述的方法,其特征在于,所述将所述订单对应的所述任务队列中的所述任务id发送给所述目标消费进程,包括:

5.如权利要求1-4任一项所述的方法,其特征在于,在所述将所述订单对应的所述任务队列中的所述任务id发送给所述目标消费进程之后,还包括:

6.如权利要求1-4任一项所述的方法,其特征在于,所述redis数据库中存储有与所述任务id对应的任务执行数据,所述按照所述任务id的排列顺序在所述目标消费进程中执行对应的任务,包括:

7.如权利要求6所述的方法,其特征在于,在所述确定所述目标消费进程中所述订单的任务执行完毕之后,还包括:

8.一种订单执行系统,其特征在于,所述订单执行系统设置有redis数据库和多个消费进程,每个所述消费进程包括多个业务线程;

9.一种电子设备,其特征在于,所述电子设备包括:

10.一种计算机可读存储介质,其特征在于,所述计算机可读存储介质存储有计算机指令,所述计算机指令用于使处理器执行时实现权利要求1-7中任一项所述的订单执行方法。


技术总结
本发明公开了一种订单执行方法、系统、电子设备和存储介质,在Redis数据库接收到订单的任务ID时,判断Redis数据库中是否存在与订单对应的任务队列;若是,将任务ID添加至任务队列的末端;若否,根据订单的订单号生成任务队列,将任务ID添加至任务队列;针对每个订单,确定与订单对应的目标消费进程;将订单对应的任务队列中的任务ID发送给目标消费进程;按照任务ID的排列顺序在目标消费进程中执行对应的任务。按照任务ID的排列顺序在目标消费进程中执行对应的任务,即使订单数据庞大,也可以保障每个订单能够按任务的先后顺序执行,大大增加了生产能力,避免订单事件堆积。

技术研发人员:谢方敏,周峰,郭陟,蔡梓浩,方时榕,罗永杰
受保护的技术使用者:广州方舟信息科技有限公司
技术研发日:
技术公布日:2024/2/19
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1