CN112769712B - 一种补偿方法、装置、电子设备及存储介质 - Google Patents

一种补偿方法、装置、电子设备及存储介质 Download PDF

Info

Publication number
CN112769712B
CN112769712B CN202011536143.6A CN202011536143A CN112769712B CN 112769712 B CN112769712 B CN 112769712B CN 202011536143 A CN202011536143 A CN 202011536143A CN 112769712 B CN112769712 B CN 112769712B
Authority
CN
China
Prior art keywords
compensation
task
idempotent
configuration
external
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
Application number
CN202011536143.6A
Other languages
English (en)
Other versions
CN112769712A (zh
Inventor
卢阳
陈露青
余贤雷
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
China Mobile Communications Group Co Ltd
China Mobile Hangzhou Information Technology Co Ltd
Original Assignee
China Mobile Communications Group Co Ltd
China Mobile Hangzhou Information Technology Co Ltd
Priority date (The priority date 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 date listed.)
Filing date
Publication date
Application filed by China Mobile Communications Group Co Ltd, China Mobile Hangzhou Information Technology Co Ltd filed Critical China Mobile Communications Group Co Ltd
Priority to CN202011536143.6A priority Critical patent/CN112769712B/zh
Publication of CN112769712A publication Critical patent/CN112769712A/zh
Application granted granted Critical
Publication of CN112769712B publication Critical patent/CN112769712B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L47/00Traffic control in data switching networks
    • H04L47/10Flow control; Congestion control
    • H04L47/24Traffic characterised by specific attributes, e.g. priority or QoS
    • H04L47/2425Traffic characterised by specific attributes, e.g. priority or QoS for supporting services specification, e.g. SLA
    • H04L47/2433Allocation of priorities to traffic types
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L67/00Network arrangements or protocols for supporting network services or applications
    • H04L67/01Protocols
    • H04L67/10Protocols in which an application is distributed across nodes in the network
    • H04L67/1095Replication or mirroring of data, e.g. scheduling or transport for data synchronisation between network nodes

Landscapes

  • Engineering & Computer Science (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Signal Processing (AREA)
  • Hardware Redundancy (AREA)

Abstract

本发明实施例涉及通信领域,公开了一种补偿方法、装置、电子设备及存储介质。其中,补偿方法为:调用预置的幂等框架,通过所述幂等框架获取外部任务中补偿任务的补偿配置;在所述幂等框架中运行所述外部任务;若所述外部任务运行失败,则在所述幂等框架中根据所述补偿配置执行所述补偿任务。本发明实施例中通过建立用于执行补偿的幂等框架,统一补偿规则,简化了补偿过程的开发,解放研发人员有限的精力,所述幂等框架能够以插件形式调用,提高执行补偿任务的复用性和灵活性。

Description

一种补偿方法、装置、电子设备及存储介质
技术领域
本发明实施例涉及通信领域,特别涉及执行补偿领域。
背景技术
目前主流应用的部署方式都以服务化的方式进行部署,服务化就会存在跨机器的访问,一次跨机器的通信可能会经过DNS服务,网卡、交换机、路由器、负载均衡等设备,在数据传输的过程中,由于环节较多,产生异常的概率会成倍数增加,这些异常并不完全代表真正的系统无法处理请求,所以需要应当尽可能的自动消化,通常采用建立补偿任务的方式。
一些情形中,不同的项目中有各自的一套补偿的方法与代码,针对补偿任务异步执行或对于是否以事务模式执行甚至会有额外的开发,耗费了研发人员的精力,但灵活性和可复用性不高,容易造成资源浪费。
发明内容
本发明实施例的目的在于提供一种补偿方法,通过建立统一的幂等框架,简化了补偿过程的开发,不需要针对补偿任务异步执行或以事务模式执行进行额外的开发,节省研发人员的精力,并且具有高度可复用性。
为解决上述技术问题,本发明的实施例提供了一种补偿方法,包括以下步骤:
以插件形式调用预置的幂等框架,通过幂等框架获取外部任务中补偿任务的补偿配置;
在幂等框架中运行外部任务;
若外部任务运行失败,则在幂等框架中根据补偿配置执行补偿任务。
本发明的实施例还提供了一种装置,包括:
获取模块,用于以插件形式调用预置的幂等框架,通过幂等框架获取外部任务中补偿任务的补偿配置;
运行模块,用于在幂等框架中运行外部任务;
补偿模块,用于在外部任务运行失败后,在幂等框架中根据补偿配置执行补偿任务。
本发明的实施例还提供了一种电子设备,包括:至少一个处理器;以及,
与所述至少一个处理器通信连接的存储器;其中,
所述存储器存储有可被所述至少一个处理器执行的指令,所述指令被所述至少一个处理器执行,以使所述至少一个处理器能够执行上述的补偿方法。
本发明的实施例还提供了一种计算机可读存储介质,存储有计算机程序,所述计算机程序被处理器执行时实现上述的补偿方法。
当前实现补偿的任务逻辑具有针对性,对于每个需要补偿的任务逻辑会有不同实现,导致建立补偿的逻辑复用扩展困难,灵活性欠佳。本发明实施例相对于相关技术而言,通过建立用于执行补偿任务的幂等框架,统一补偿规则,简化了补偿过程的开发,解放研发人员有限的精力,所述幂等框架能够以插件形式调用,提高执行补偿任务的复用性和灵活性。
另外,以插件形式调用预置的幂等框架,通过幂等框架获取外部任务中补偿任务的补偿配置前,包括:查询外部任务是否携带预置的声明;声明用于表征外部任务需要调用幂等框架。为需要执行补偿任务的外部任务增加声明,表示需要通过预置的框架用来完成补偿任务,使得对预置框架的调用更具有选择性,节约系统资源。
另外,通过幂等框架获取外部任务中补偿任务的补偿配置后,还包括:注册事务同步器;所述事务同步器用于管理所述外部任务的运行状态。例如在注册事务同步器时,注册外部任务的最大执行时间,超时即任务执行失败,事务同步器用多方面管理任务的执行状态。
另外,补偿配置,包括:上下文信息、事务标记和线程池;所述在所述幂等框架中根据所述补偿配置执行所述补偿任务,包括:根据所述上下文信息判断所述补偿任务是否为异步执行,若为异步执行则根据所述线程池完成异步执行;根据事务标记判断补偿任务是否以事务形式执行。不需要对关于是否异步执行或是否以事务形式执行增加额外配置,甚至入侵原程序等,只要查询上述获得的补偿配置即可,执行过程规范化且方便快捷。
另外,补偿配置,还包括:所述补偿任务的优先级;所述在所述幂等框架中根据所述补偿配置执行所述补偿任务,包括:根据所述补偿任务的优先级获取所述补偿任务;若所述补偿任务执行失败,则更新所述补偿配置;其中,所述更新所述补偿配置包括降低所述补偿任务的优先级。通过加入优先级制度,管理补偿任务的执行顺序,快速处理优先级高的补偿任务,在补偿任务执行失败后,降低该补偿任务的优先级。由于补偿任务多次执行失败,一般情况下为外部资源出现故障并且短期内无法恢复,本方案对该情况下的补偿任务降低优先级,延后执行顺序,使得系统资源的执行分配更合理。
另外,补偿配置,还包括:最大执行次数;所述在所述幂等框架中根据所述补偿配置执行所述补偿任务,包括:若所述补偿任务执行失败,则更新所述补偿配置;其中,所述更新所述补偿配置包括更新所述补偿任务的执行次数;若所述补偿任务的执行次数更新后达到所述最大执行次数,则结束所述补偿任务。即,对补偿任务的执行增加次数限制,在达到最大执行次数后,定义为执行失败且结束执行,能够将向相应的系统资源分配至其余执行成功率更高的补偿任务,保证运行效率。
附图说明
一个或多个实施例通过与之对应的附图中的图片进行示例性说明,这些示例性说明并不构成对实施例的限定,附图中具有相同参考数字标号的元件表示为类似的元件,除非有特别申明,附图中的图不构成比例限制。
图1是根据本申请第一实施方式提供的补偿方法的流程图;
图2是根据本申请第二实施方式提供的补偿方法的流程图;
图3是根据本申请第二实施方式提供的补偿方法的示意图;
图4是根据本申请第二实施方式提供的补偿方法中关于优先级执行的示意图;
图5是根据本申请第三实施方式提供的补偿方法的设备的示意图;
图6是根据本申请第四实施方式提供的一种电子设备的示意图。
具体实施方式
为使本发明实施例的目的、技术方案和优点更加清楚,下面将结合附图对本发明的各实施例进行详细的阐述。然而,本领域的普通技术人员可以理解,在本发明各实施例中,为了使读者更好地理解本申请而提出了许多技术细节。但是,即使没有这些技术细节和基于以下各实施例的种种变化和修改,也可以实现本申请所要求保护的技术方案。以下各个实施例的划分是为了描述方便,不应对本发明的具体实现方式构成任何限定,各个实施例在不矛盾的前提下可以相互结合相互引用。
本发明的第一实施例涉及一种补偿方法,应用于电子设备,具体流程如图1所示。
步骤101,以插件形式调用预置的幂等框架,通过幂等框架获取外部任务中补偿任务的补偿配置;
步骤102,在幂等框架中运行外部任务;
步骤103,判断外部任务运行是否运行成功,若是,则执行步骤104;若否,则执行步骤105;
步骤104,删除补偿配置;
步骤105,在幂等框架中根据补偿配置执行补偿任务。
本实施例中,通过调用幂等框架以规范性执行补偿,如果在幂等框架中首次执行任务已经成功,则删除幂等框架前期获取的补偿配置,由于没有补偿配置无法执行补偿任务,则本过程自动结束;如果执行失败,则进入补偿流程。
下面对本实施例的补偿方法的实现细节进行具体的说明,以下内容仅为方便理解提供的实现细节,并非实施本方案的必须。
在步骤101中,承载任务执行的电子设备以插件形式调用预置的幂等框架,通过幂等框架获取外部任务中补偿任务的补偿配置。即,幂等框架建立为插件形式,可以调用该幂等框架,用以执行外部任务的补偿任务,获取的补偿配置用于在首次运行失败后,执行补偿任务。
其中,外部任务可以为需要执行的逻辑方法或事务,由于在执行任务的过程中环节较多,产生异常的概率会成倍数增加,这些异常并不完全代表真正的系统无法处理请求,需要应当尽可能的自动消化,所以建立补偿任务来完善外部任务的执行过程。所述幂等框架能够获取获取补偿任务的补偿配置,并根据补偿配置规范性的执行补偿任务。
在一个例子中,需要查询外部任务是否携带预置的声明,如果存在预置的声明,证明该外部任务需要执行调用幂等框架。当识别到外部任务携带预置的声明时,调用幂等框架,以执行该外部任务,使得对预置的幂等框架的调用更具有选择性,节约系统资源。
其中,补偿配置可以包括:上下文信息、事务标记和线程池;上下文信息用于判断补偿任务是否异步执行,如果为异步执行,需要传送至线程池,用于执行异步操作;事务标记用于判断补偿任务是否以事务的形式执行。
在一些情形中,需要调用幂等框架的外部任务本身也具有幂等性,对于同一操作发起的一次请求或者多次请求的结果是一致的,不会因为多次执行而产生副作用。
在步骤102中,电子设备在幂等框架中运行外部任务;即,按照外部任务的完整程序内容执行该外部任务。
在一个例子中,通过幂等框架获取外部任务中补偿任务的补偿配置后,还包括:注册事务同步器;事务同步器用于管理外部任务的运行状态。例如,注册事务管理器的同时,输入外部任务的最大执行时间,事务管理器监控该外部任务的执行过程,若超过最大执行时间还未完成,则为本次任务失败。限制任务的运行时间,避免产生虽未识别到任务失败,但长期占用系统资源的状况,使得系统资源的利用更合理。
在步骤103至步骤105中,若外部任务执行成功,则删除之前获取的补偿任务的补偿配置,由于补偿配置被删除,无法执行补偿任务,则该外部任务在幂等框架中的执行结束;若外部任务运行失败,则在幂等框架中根据补偿配置执行补偿任务。
在一个例子中,在幂等框架中根据补偿配置执行补偿任务,包括:根据上下文信息判断补偿任务是否为异步执行,若为异步执行则传送至线程池,线程池中存储有异步执行的数据配置,通过线程池完成异步执行;在判断为同步或异步执行的基础上,根据事务标记判断补偿任务是否以事务形式执行。补偿任务可以是完整的外部任务,或外部任务中的部分内容,由于在步骤102中是根据外部任务的程序内容执行外部任务,程序中定义了完整的过程,所以在运行中不需要进行额外的查询。同时,补偿任务如果为执行完整的外部任务,也不需要进行额外的查询;但若补偿任务执行的是原外部任务中的部分内容,即并非执行外部任务的完整程序,就需要根据上述步骤101中获取到的补偿配置逐步查询执行过程中需要判断的信息,用于完成补偿。由于这些补偿配置在幂等框架被调用时会获取,并在根据幂等框架执行补偿任务时逐步查询,避免了对于需要进行异步或者以事务形式运行的补偿任务进行额外的针对性处理,甚至入侵原始程序等操作。在配置简单的条件下,仍能够高成功率的执行任务。
利用幂等规则,预先建立幂等框架用于规则性执行补偿任务,由于幂等框架自身具有幂等性,对于同一操作发起的一次请求或者多次请求的结果是一致的,不会因为多次点击而产生副作用,建立幂等框架的时候可以固定补偿任务需要的补偿配置以及补偿任务的执行顺序。适用于多种需要执行补偿的外部任务,外部任务执行补偿时不需要编写针对性操作,节省了开发人员的精力。
当前实现补偿的任务逻辑具有针对性,对于每个需要补偿的任务逻辑会有不同实现,导致建立补偿的逻辑复用扩展困难,灵活性欠佳。本方案通过建立用于执行补偿的幂等框架,统一补偿规则,简化了补偿过程的开发,解放研发人员有限的精力,所述幂等框架能够以插件形式调用,提高执行补偿任务的复用性和灵活性。
本发明的第二实施例涉及一种补偿方法,如图2所示,具体如下:
步骤201,以插件形式调用预置的幂等框架,通过幂等框架获取外部任务中补偿任务的补偿配置;补偿配置还包括:补偿任务的优先级、最大执行次数;
步骤202,在幂等框架中运行外部任务;
步骤203,判断外部任务运行是否运行成功,若是,则执行步骤204;若否,则执行步骤205;
步骤204,删除补偿配置;
步骤205,在幂等框架中根据补偿配置执行补偿任务;
步骤206,判断补偿任务是否执行成功;若是则结束流程;若否,则执行步骤207;
步骤207,更新补偿配置。
本实施例中,步骤202至步骤205与第一实施例大致相同,为避免重复,不再赘述,主要区别之处在于:步骤201和步骤203,以下进行详细说明。
对于步骤201,在本实施例中,补偿配置还包括补偿任务的优先级和补偿任务的最大执行次数,其中,补偿任务的优先级用来调整补偿任务的执行顺序,对于占用资源进行合理配置;补偿任务的最大执行次数,用于限制补偿任务的执行,能够避免补偿任务一直执行失败但一直重试导致的资源占用和浪费。
对于步骤206至步骤207,若外部任务运行失败,则在幂等框架中根据补偿配置执行补偿任务;若补偿任务执行失败,则更新补偿配置,如图3所示。在一个例子中,根据补偿配置执行补偿任务时,根据补偿任务的优先级获取补偿任务,即,在获取补偿配置时,补偿配置中含有补偿任务预置的优先级,按照预置优先级执行补偿任务;若本次补偿任务执行失败,则更新补偿配置,包括:降低本补偿任务的优先级,如图4所示。补偿任务如果多次执行失败,极大可能是外部资源出错并且短期无法恢复,若不做相应处理,一直执行外部资源出错的补偿任务,不但不会执行成功,也是一种对系统资源的浪费。而本例采用了若执行失败则降低补偿任务的优先级这一策略,失败次数越多则优先级越低,执行顺序靠后,避免了由于外部资源出错但一直执行补偿任务导致的系统占用。
其中,通过分布式锁保证单次只执行一个补偿任务,在根据优先级获取到补偿任务后,该分布式锁上锁,不接收其他补偿任务,单次只执行已接收到的补偿任务;在本次补偿任务执行有结果后,解锁,按照优先级获取下一次需要执行的补偿任务。将所有未执行,或执行未成功从而降低了优先级的补偿任务置于等待列表,由于补偿任务单次只执行一个,对这多个补偿任务实现隔离化处理,避免出现交叉错误,提高补偿任务的执行成功概率。
在另一个例子中,若补偿任务执行失败,则更新所述补偿配置;其中,更新所述补偿配置包括更新所述补偿任务的执行次数;如果补偿任务的执行次数更新后达到所述最大执行次数,则结束所述补偿任务(未体现在流程图中)。为补偿任务的执行增加次数限制,若多次执行未果即宣告失败,不会一直执行,减少了系统占用。
另外,更新补偿配置还可以包括:最后执行时间,下次最早执行时间;最后执行时间就是最后一次执行补偿任务的系统时间,同时,能够通过优先级和幂等框架本身数据,得到下次最早执行时间;使得任务的执行次序有记录和可视化,提高用户的使用体验。
此外,本领域技术人员可以理解的是,所述优先级制度和最大执行次数制度不冲突,可以共同实施,同时本实施例与第一实施例并不冲突,可以结合使用。
上面各种方法的步骤划分,只是为了描述清楚,实现时可以合并为一个步骤或者对某些步骤进行拆分,分解为多个步骤,只要包括相同的逻辑关系,都在本专利的保护范围内;对算法中或者流程中添加无关紧要的修改或者引入无关紧要的设计,但不改变其算法和流程的核心设计都在该专利的保护范围内。
本发明第三实施例涉及一种装置,如图5所示,包括:
获取模块301,用于以插件形式调用预置的幂等框架,通过幂等框架获取外部任务中补偿任务的补偿配置;
运行模块302,用于在幂等框架中运行外部任务;
补偿模块303,用于若外部任务运行失败,则在幂等框架中根据补偿配置执行补偿任务。
对于获取模块301,执行调用预置的幂等框架,通过幂等框架获取外部任务中补偿任务的补偿配置;在一个例子中,首先查询预置的外部任务是否携带预置的声明,声明用于表示该外部任务需要调用该幂等框架,以执行补偿任务。
其中,补偿配置,包括:上下文信息、事务标记和线程池。上下文信息用于判断补偿任务是否为异步执行,若为异步执行则根据线程池完成异步执行;事务标记用于判断补偿任务是否以事务形式执行。
在一个例子中,补偿配置还包括补偿任务的优先级、补偿任务的最大执行次数。
对于运行模块302,执行在幂等框架中运行外部任务,按照外部任务的原程序执行;同时,在获取到补偿配置后,注册事务同步器;事务同步器用于管理外部任务的运行状态。
对于补偿模块303,执行若外部任务运行失败,则在幂等框架中根据补偿配置执行补偿任务。包括:根据所述补偿任务的优先级获取所述补偿任务;根据上下文信息判断所述补偿任务是否为异步执行,若为异步执行则根据线程池完成异步执行;根据事务标记判断补偿任务是否以事务形式执行。
如果本次补偿任务执行失败,则更新补偿配置,包括:包括降低所述补偿任务的优先级,更新补偿任务的执行次数;若补偿任务的执行次数更新后达到最大执行次数,则结束补偿任务。
当前实现补偿的任务逻辑具有针对性,对于每个需要补偿的任务逻辑会有不同实现,导致建立补偿的逻辑复用扩展困难,灵活性欠佳。本方案通过建立用于执行补偿的幂等框架,统一补偿规则,简化了补偿过程的开发,解放研发人员有限的精力,所述幂等框架能够以插件形式调用,提高执行补偿任务的复用性和灵活性。
不难发现,本实施例为与上述实施例相对应的系统实施例,本实施例可与上述实施例互相配合实施。上述实施例中提到的相关技术细节在本实施例中依然有效,为了减少重复,这里不再赘述。相应地,本实施例中提到的相关技术细节也可应用在上述实施例中。
值得一提的是,本实施例中所涉及到的各模块均为逻辑模块,在实际应用中,一个逻辑单元可以是一个物理单元,也可以是一个物理单元的一部分,还可以以多个物理单元的组合实现。此外,为了突出本发明的创新部分,本实施例中并没有将与解决本发明所提出的技术问题关系不太密切的单元引入,但这并不表明本实施例中不存在其它的单元。
本发明第四实施例涉及一种电子设备,如图6所示,包括至少一个处理器401;以及,与所述至少一个处理器401通信连接的存储器402;其中,所述存储器存储有可被所述至少一个处理器执行的指令,所述指令被所述至少一个处理器执行,以使所述至少一个处理器能够执行上述的补偿方法。
其中,存储器和处理器采用总线方式连接,总线可以包括任意数量的互联的总线和桥,总线将一个或多个处理器和存储器的各种电路连接在一起。总线还可以将诸如外围设备、稳压器和功率管理电路等之类的各种其他电路连接在一起,这些都是本领域所公知的,因此,本文不再对其进行进一步描述。总线接口在总线和收发机之间提供接口。收发机可以是一个元件,也可以是多个元件,比如多个接收器和发送器,提供用于在传输介质上与各种其他装置通信的单元。经处理器处理的数据通过天线在无线介质上进行传输,进一步,天线还接收数据并将数据传送给处理器。
处理器负责管理总线和通常的处理,还可以提供各种功能,包括定时,外围接口,电压调节、电源管理以及其他控制功能。而存储器可以被用于存储处理器在执行操作时所使用的数据。
本发明第五实施例涉及一种计算机可读存储介质,存储有计算机程序。计算机程序被处理器执行时实现上述方法实施例。
即,本领域技术人员可以理解,实现上述实施例方法中的全部或部分步骤是可以通过程序来指令相关的硬件来完成,该程序存储在一个存储介质中,包括若干指令用以使得一个设备(可以是单片机,芯片等)或处理器(processor)执行本申请各个实施例所述方法的全部或部分步骤。而前述的存储介质包括:U盘、移动硬盘、只读存储器(ROM,Read-OnlyMemory)、随机存取存储器(RAM,Random Access Memory)、磁碟或者光盘等各种可以存储程序代码的介质。
本领域的普通技术人员可以理解,上述各实施例是实现本发明的具体实施例,而在实际应用中,可以在形式上和细节上对其作各种改变,而不偏离本发明的精神和范围。

Claims (9)

1.一种补偿方法,其特征在于,包括:
以插件形式调用预置的幂等框架,通过所述幂等框架获取外部任务中补偿任务的补偿配置;
在所述幂等框架中运行所述外部任务;
若所述外部任务运行失败,则在所述幂等框架中根据所述补偿配置执行所述补偿任务;
其中,所述补偿配置,包括:上下文信息、事务标记和线程池;
所述在所述幂等框架中根据所述补偿配置执行所述补偿任务,包括:
根据所述上下文信息判断所述补偿任务是否为异步执行,若为异步执行则根据所述线程池完成异步执行;
根据所述事务标记判断所述补偿任务是否以事务形式执行;若为事务形式执行,则按照事务形式完成补偿任务,若为非事务形式执行,则按照非事务形式完成补偿任务。
2.根据权利要求1所述的补偿方法,其特征在于,所述以插件形式调用预置的幂等框架,通过所述幂等框架获取外部任务中补偿任务的补偿配置之前,包括:
查询所述外部任务是否携带预置的声明;所述声明用于表征所述外部任务需要调用所述幂等框架。
3.根据权利要求1所述的补偿方法,其特征在于,所述通过所述幂等框架获取外部任务中补偿任务的补偿配置后,还包括:
注册事务同步器;所述事务同步器用于管理所述外部任务的运行状态。
4.根据权利要求1所述的补偿方法,其特征在于,所述补偿配置,还包括:所述补偿任务的优先级;
所述在所述幂等框架中根据所述补偿配置执行所述补偿任务,包括:
根据所述补偿任务的优先级获取所述补偿任务;
若所述补偿任务执行失败,则更新所述补偿配置;其中,所述更新所述补偿配置包括降低所述补偿任务的优先级。
5.根据权利要求1所述的补偿方法,其特征在于,所述根据所述补偿任务的优先级获取所述补偿任务,包括:
根据所述补偿任务的优先级获取所述补偿任务,并通过分布式锁保证单次只执行一个补偿任务。
6.根据权利要求1所述的补偿方法,其特征在于,所述补偿配置,还包括:最大执行次数;
所述在所述幂等框架中根据所述补偿配置执行所述补偿任务,包括:
若所述补偿任务执行失败,则更新所述补偿配置;其中,所述更新所述补偿配置包括更新所述补偿任务的执行次数;若所述补偿任务的执行次数更新后达到所述最大执行次数,则结束所述补偿任务。
7.一种补偿装置,其特征在于,包括:
获取模块,用于以插件形式调用预置的幂等框架,通过所述幂等框架获取外部任务中补偿任务的补偿配置;所述补偿配置,包括:上下文信息、事务标记和线程池;
运行模块,用于在所述幂等框架中运行所述外部任务;
补偿模块,用于在所述外部任务运行失败后,在所述幂等框架中根据所述补偿配置执行所述补偿任务;其中,所述在所述幂等框架中根据所述补偿配置执行所述补偿任务,包括:根据所述上下文信息判断所述补偿任务是否为异步执行,若为异步执行则根据所述线程池完成异步执行;根据所述事务标记判断所述补偿任务是否以事务形式执行;若为事务形式执行,则按照事务形式完成补偿任务,若为非事务形式执行,则按照非事务形式完成补偿任务。
8.一种电子设备,其特征在于,包括:
至少一个处理器;以及,
与所述至少一个处理器通信连接的存储器;其中,
所述存储器存储有可被所述至少一个处理器执行的指令,所述指令被所述至少一个处理器执行,以使所述至少一个处理器能够执行如权利要求1至6中任一所述的补偿方法。
9.一种计算机可读存储介质,存储有计算机程序,其特征在于,所述计算机程序被处理器执行时实现权利要求1至6中任一项所述的补偿方法。
CN202011536143.6A 2020-12-23 2020-12-23 一种补偿方法、装置、电子设备及存储介质 Active CN112769712B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN202011536143.6A CN112769712B (zh) 2020-12-23 2020-12-23 一种补偿方法、装置、电子设备及存储介质

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN202011536143.6A CN112769712B (zh) 2020-12-23 2020-12-23 一种补偿方法、装置、电子设备及存储介质

Publications (2)

Publication Number Publication Date
CN112769712A CN112769712A (zh) 2021-05-07
CN112769712B true CN112769712B (zh) 2022-10-18

Family

ID=75694772

Family Applications (1)

Application Number Title Priority Date Filing Date
CN202011536143.6A Active CN112769712B (zh) 2020-12-23 2020-12-23 一种补偿方法、装置、电子设备及存储介质

Country Status (1)

Country Link
CN (1) CN112769712B (zh)

Family Cites Families (8)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US9531569B2 (en) * 2014-10-08 2016-12-27 Dell Products, Lp Power aware receiver/transmitter adaptation for high speed serial interfaces
US11140032B2 (en) * 2018-05-04 2021-10-05 Oracle International Corporation System and method for building idempotent configuration management modules for a cloud Infrastructure Service
CN110347441A (zh) * 2019-06-25 2019-10-18 银江股份有限公司 一种热扩展数据集成引擎系统及方法
CN110737514A (zh) * 2019-09-26 2020-01-31 腾讯科技(深圳)有限公司 一种确保分布式事务最终数据一致性的方法、装置及介质
CN110868449B (zh) * 2019-10-14 2022-03-22 深圳市非零无限科技有限公司 一种基于异步消息实现定时任务的方法及系统
CN111367628B (zh) * 2020-03-05 2023-05-23 中国银行股份有限公司 分布式事务的处理方法、装置及消息生产方、消费方系统
CN111813791B (zh) * 2020-06-17 2024-05-21 上海万物新生环保科技集团有限公司 一种分布式补偿事务的方法及设备
CN111752740A (zh) * 2020-06-29 2020-10-09 深圳前海微众银行股份有限公司 微服务异常补偿方法、装置、设备与计算机可读存储介质

Also Published As

Publication number Publication date
CN112769712A (zh) 2021-05-07

Similar Documents

Publication Publication Date Title
CN109803279B (zh) 一种切片管理方法、基站及终端
CN112650812A (zh) 一种数据分片存储方法、装置、计算机设备和存储介质
CN101145948A (zh) 软件升级方法和装置、以及网元
CN111338670B (zh) 机器人的固件更新方法、装置、存储介质和机器人
CN112470119B (zh) 一种分布式系统中的业务升级方法、装置及分布式系统
CN110417876B (zh) 会话方法、分布式系统中的节点服务器及主控设备
CN113254075B (zh) 指令执行方法、指令执行装置、电子设备及存储介质
CN109120680B (zh) 一种控制系统、方法及相关设备
CN112769712B (zh) 一种补偿方法、装置、电子设备及存储介质
CN102984055A (zh) 一种issu的软重启升级方法和设备
CN111371593B (zh) 一种业务部署方法、装置、电子设备及存储介质
CN111767126A (zh) 分布式批量处理的系统和方法
CN113900985B (zh) Io和spi复用芯片、复用辅助芯片和数据交互方法
CN111767122A (zh) 分布式任务调度管理方法和装置
CN111970349B (zh) 基于远程过程调用的通讯系统、方法、装置、设备及介质
CN115167874A (zh) 自动驾驶软件镜像部署方法、装置、电子设备和可读介质
CN112769634B (zh) 一种基于Zookeeper的可横向扩展的分布式系统及开发方法
CN112083912B (zh) 服务编排的中间结果处理方法、装置、设备及存储介质
CN112235204B (zh) 一种数据上报方法、系统、电子设备和存储介质
CN114265605A (zh) 一种业务系统功能组件的版本回退方法和装置
CN112860379A (zh) 一种云平台上安装部署redis高可用的方法
CN112306541A (zh) 一种面向任务加改装需求的航电系统增量升级方法
CN111259376A (zh) 权限配置方法、装置、服务器及存储介质
CN112527338A (zh) 微服务升级方法、电子设备和可读存储介质
CN117390337B (zh) 消息发送方法、装置、中间件及介质

Legal Events

Date Code Title Description
PB01 Publication
PB01 Publication
SE01 Entry into force of request for substantive examination
SE01 Entry into force of request for substantive examination
GR01 Patent grant
GR01 Patent grant