本申请涉及任务管理领域,具体涉及一种分布式任务处理方法、一种存储介质和一种分布式任务处理装置。
背景技术:
1、目前,项目大部分采用微服务形式进行部署。在项目的建设过程中,不可避免地会涉及任务的处理。在进行任务的处理时,如果采用单体服务方式,会存在单点故障的问题;如果采用分布式方式进行运行,容易出现重复执行的情况,进而轻则产生脏数据,重则影响系统数据的准确性。因此,亟需一种任务处理方法来避免单点故障,并确保任务的唯一性,以避免产生脏数据,保证系统数据的准确性。
技术实现思路
1、鉴于上述问题,本申请提供了一种分布式任务处理方法,能够避免单点故障而导致的系统运行问题;同时,保证任务的唯一性,避免产生脏数据,保证系统数据的准确性。
2、为实现上述目的,发明人提供了一种分布式任务处理方法,包括:获取任务管理信息,并根据所述任务管理信息进行任务的发布,以及将所述任务推送到消息队列;在所述消息队列接收到任务时,触发多个任务执行组进行任务消费;多个所述任务执行组通过调用缓存组件进行抢锁操作;任意一个所述任务执行组在所述抢锁操作成功之后对任务进行执行。
3、区别于现有技术,上述技术方案通过消息队列来完成任务的分布式协调;同时,通过缓存组件的锁机制实现任务的唯一性,避免同一任务重复执行;从而实现避免服务的单点故障,避免产生脏数据,保证系统数据的准确性。
4、在一些实施例中,所述任务管理信息包括任务添加信息和/或任务修改信息。
5、在一些实施例中,所述任务执行组包括多个任务执行组件,其中,任务执行组进行任务消费包括:所述任务执行组对所述多个任务执行组件进行筛选,以根据筛选结果确定用于执行当前任务的任务执行组件。
6、在一些实施例中,在任意一个任务执行组对任务进行正常执行时,采用缓存的过期锁机制对过期锁进行续约,以使得任务可以被正常执行。
7、在一些实施例中,在任意一个任务执行组任务执行中断时,对所述过期锁进行释放,以使得下一任务可以被正常执行。通过这样的的设计可以有效防止因任务中断而导致的死锁现象。
8、为实现上述目的,发明人提供了一种存储介质,存储介质存储有计算机程序,所述计算机程序被处理器执行时实现如上述分布式任务处理方法的步骤。
9、为实现上述目的,发明人提供了一种分布式任务处理装置,包括:任务管理模块,用于获取任务管理信息,并根据所述任务管理信息进行任务的发布,以及将所述任务推送到消息队列;触发模块,用于在所述消息队列接收到任务时,触发多个任务执行组进行任务消费;多个任务执行组,所述任务执行组用于通过调用缓存组件进行抢锁操作,并在所述抢锁操作成功之后对任务进行执行。
10、在一些实施例中,所述任务管理信息包括任务添加信息和/或任务修改信息。
11、在一些实施例中,所述任务执行组包括多个任务执行组件,所述任务执行组还用于对所述多个任务执行组件进行筛选,并根据筛选结果控制相应的任务执行组件进行任务的执行。
12、上述
技术实现要素:
相关记载仅是本申请技术方案的概述,为了让本领域普通技术人员能够更清楚地了解本申请的技术方案,进而可以依据说明书的文字及附图记载的内容予以实施,并且为了让本申请的上述目的及其它目的、特征和优点能够更易于理解,以下结合本申请的具体实施方式及附图进行说明。
1.一种分布式任务处理方法,其特征在于,包括:
2.如权利要求1所述的分布式任务处理方法,其特征在于,所述任务管理信息包括任务添加信息和/或任务修改信息。
3.如权利要求1所述的分布式任务处理方法,其特征在于,所述任务执行组包括多个任务执行组件,其中,任务执行组进行任务消费包括:
4.如权利要求1所述的分布式任务处理方法,其特征在于,如果任务执行组抢锁操作失败,则结束当前任务。
5.如权利要求1所述的分布式任务处理方法,其特征在于,在任意一个任务执行组对任务进行正常执行时,采用缓存的过期锁机制对过期锁进行续约,以使得任务可以被正常执行。
6.如权利要求5所述的分布式任务处理方法,其特征在于,在任意一个任务执行组任务执行中断时,对所述过期锁进行释放,以使得下一任务可以被正常执行。
7.存储介质,其特征在于:所述存储介质存储有计算机程序,所述计算机程序被处理器执行时实现如权利要求1到6任意一项所述分布式任务处理方法的步骤。
8.一种分布式任务处理装置,其特征在于,包括:
9.如权利要求8所述的分布式任务处理装置,其特征在于,所述任务管理信息包括任务添加信息和/或任务修改信息。
10.如权利要求8所述的分布式任务处理装置,其特征在于,所述任务执行组包括多个任务执行组件,所述任务执行组还用于对所述多个任务执行组件进行筛选,并根据筛选结果控制相应的任务执行组件进行任务的执行。