CN117873682A - 同步转异步的任务处理方法、装置、设备、介质及产品 - Google Patents
同步转异步的任务处理方法、装置、设备、介质及产品 Download PDFInfo
- Publication number
- CN117873682A CN117873682A CN202410057443.8A CN202410057443A CN117873682A CN 117873682 A CN117873682 A CN 117873682A CN 202410057443 A CN202410057443 A CN 202410057443A CN 117873682 A CN117873682 A CN 117873682A
- Authority
- CN
- China
- Prior art keywords
- task
- execution
- target
- target task
- information
- 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.)
- Pending
Links
- 238000003672 processing method Methods 0.000 title claims abstract description 25
- 238000012545 processing Methods 0.000 claims abstract description 34
- 238000000034 method Methods 0.000 claims description 46
- 238000004590 computer program Methods 0.000 claims description 24
- 230000001360 synchronised effect Effects 0.000 claims description 19
- 230000008569 process Effects 0.000 claims description 11
- 238000004891 communication Methods 0.000 description 8
- 238000010586 diagram Methods 0.000 description 5
- 230000004048 modification Effects 0.000 description 3
- 238000012986 modification Methods 0.000 description 3
- 230000003287 optical effect Effects 0.000 description 3
- 238000013459 approach Methods 0.000 description 2
- 230000006870 function Effects 0.000 description 2
- 230000003993 interaction Effects 0.000 description 2
- 238000003491 array Methods 0.000 description 1
- 238000013473 artificial intelligence Methods 0.000 description 1
- 230000009286 beneficial effect Effects 0.000 description 1
- 230000001413 cellular effect Effects 0.000 description 1
- 230000008878 coupling Effects 0.000 description 1
- 230000001808 coupling effect Effects 0.000 description 1
- 238000010168 coupling process Methods 0.000 description 1
- 238000005859 coupling reaction Methods 0.000 description 1
- 230000007547 defect Effects 0.000 description 1
- 230000003111 delayed effect Effects 0.000 description 1
- 238000013461 design Methods 0.000 description 1
- 238000005516 engineering process Methods 0.000 description 1
- 239000011521 glass Substances 0.000 description 1
- 239000004973 liquid crystal related substance Substances 0.000 description 1
- 238000010801 machine learning Methods 0.000 description 1
- 239000013307 optical fiber Substances 0.000 description 1
- 238000007781 pre-processing Methods 0.000 description 1
- 230000004044 response Effects 0.000 description 1
- 239000004065 semiconductor Substances 0.000 description 1
- 230000001953 sensory effect Effects 0.000 description 1
- 238000006467 substitution reaction Methods 0.000 description 1
- 230000009466 transformation Effects 0.000 description 1
- 230000000007 visual effect Effects 0.000 description 1
Landscapes
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
Abstract
本发明公开了一种同步转异步的任务处理方法、装置、设备、介质及产品。本发明实施例涉及数据处理技术领域。包括:获取携带有同步转异步标签的目标任务;将所述目标任务存储至数据库中,并配置所述目标任务的状态信息及执行时间信息;其中,所述执行时间信息包括执行过期时间及下一次执行时间;每隔设定时长扫描所述数据库中的目标任务;根据所述状态信息和/或所述执行时间信息判断扫描到的目标任务是否满足执行条件;若扫描到的任务满足执行条件,则执行所述目标任务,并根据执行结果更新所述状态信息和/或执行时间信息。本发明实施例提供的同步转异步的任务处理方法,可以提高同步转异步的可靠性。
Description
技术领域
本发明实施例涉及数据处理技术领域,尤其涉及一种同步转异步的任务处理方法、装置、设备、介质及产品。
背景技术
对于一些业务场景,完全同步会耗时比较长,不能满足技术时效性要求。面对高并发场景,完全同步也会消耗较多的物理资源,增加系统的压力。针对这一问题,其中一个解决方向是将同步的任务进行异步处理,将重要信息预处理后立即返回系统进行后续处理,以提升响应速度和并发性。现有的同步转异步方法需要定制化改造,且增加了代码的耦合性、复杂性和出现漏洞的概率,缺乏通用性。
发明内容
本发明实施例提供一种同步转异步的任务处理方法、装置、设备、介质及产品,可以提高同步转异步的可靠性。
第一方面,本发明实施例提供了一种同步转异步的任务处理方法,包括:
获取携带有同步转异步标签的目标任务;
将所述目标任务存储至数据库中,并配置所述目标任务的状态信息及执行时间信息;其中,所述执行时间信息包括执行过期时间及下一次执行时间;
每隔设定时长扫描所述数据库中的目标任务;
根据所述状态信息和/或所述执行时间信息判断扫描到的目标任务是否满足执行条件;
若扫描到的任务满足执行条件,则执行所述目标任务,并根据执行结果更新所述状态信息和/或执行时间信息。
第二方面,本发明实施例还提供了一种同步转异步的任务处理装置,包括:
目标任务获取模块,用于获取携带有同步转异步标签的目标任务;
目标任务存储模块,用于将所述目标任务存储至数据库中,并配置所述目标任务的状态信息及执行时间信息;其中,所述执行时间信息包括执行过期时间及下一次执行时间;
目标任务扫描模块,用于每隔设定时长扫描所述数据库中的目标任务;
执行条件判断模块,用于根据所述状态信息和/或所述执行时间信息判断扫描到的目标任务是否满足执行条件;
目标任务执行模块,用于若扫描到的任务满足执行条件,则执行所述目标任务,并根据执行结果更新所述状态信息和/或执行时间信息。
第三方面,本发明实施例还提供了一种电子设备,所述电子设备包括:
至少一个处理器;以及
与所述至少一个处理器通信连接的存储器;其中,
所述存储器存储有可被所述至少一个处理器执行的计算机程序,所述计算机程序被所述至少一个处理器执行,以使所述至少一个处理器能够执行本发明实施例所述的同步转异步的任务处理方法。
第四方面,本发明实施例提供了一种计算机可读存储介质,所述计算机可读存储介质存储有计算机指令,所述计算机指令用于使处理器执行时实现本发明实施例所述的同步转异步的任务处理方法。
第五方面,本发明实施例还提供了一种计算机程序产品,包括计算机程序,所述计算机程序在被处理器执行时实现如本发明实施例所述的同步转异步的任务处理方法。
本发明实施例公开了一种同步转异步的任务处理方法、装置、设备、介质及产品。获取携带有同步转异步标签的目标任务;将目标任务存储至数据库中,并配置目标任务的状态信息及执行时间信息;其中,执行时间信息包括执行过期时间及下一次执行时间;每隔设定时长扫描数据库中的目标任务;根据状态信息和/或执行时间信息判断扫描到的目标任务是否满足执行条件;若扫描到的任务满足执行条件,则执行目标任务,并根据执行结果更新状态信息和/或执行时间信息。本发明实施例提供的同步转异步的任务处理方法,将携带有同步转异步标签的目标任务存储于数据库中,当目标任务满足执行条件时,异步处理该目标任务,可以提高同步转异步的可靠性。
附图说明
图1是本发明实施例中的一种同步转异步的任务处理方法的流程图;
图2是本发明实施例中的一种同步转异步的任务处理方法的流程图;
图3是本发明实施例中的一种同步转异步的任务处理装置的结构示意图;
图4是本发明实施例中的一种电子设备的结构示意图。
具体实施方式
下面结合附图和实施例对本发明作进一步的详细说明。可以理解的是,此处所描述的具体实施例仅仅用于解释本发明,而非对本发明的限定。另外还需要说明的是,为了便于描述,附图中仅示出了与本发明相关的部分而非全部结构。
应注意到:相似的标号和字母在下面的附图中表示类似项,因此,一旦某一项在一个附图中被定义,则在随后的附图中不需要对其进行进一步定义和解释。同时,在本发明的描述中,术语“第一”、“第二”等仅用于区分描述,而不能理解为指示或暗示相对重要性。本申请技术方案中对数据的获取、存储、使用、处理等均符合国家法律法规的相关规定。
目前同步转异步的方法包括如下两种:一种是通过发消息的方式。发送者发送消息,不需要等待接收者收到消息,就可以进行后续处理,而接收者收到消息后,再执行相应的操作。应用于上述场景,使用者在支付阶段发送消息给库存管理和物流管理,无需等待两者的结果返回,就可以进行后续处理,而库存管理和物流管理在收到支付阶段的消息后,再进行库存扣减和生成物流信息等操作。另一种是采用异步任务方式,使用者将任务先行记下,然后编写异步任务定时去扫描处理这些任务。即,使用者在库存管理和物流管理阶段将这两个任务进行记录,接着需要编写异步任务的扫描逻辑,去扫描到这两个任务,然后执行。上述
同步转异步的方法共同的缺点是都需要使用者进行客制化改造。发消息方式需要定制消息的接收方,显式地发送消息。而另一种异步任务方式则需要定制扫描逻辑,即如何扫描到需要执行的任务。这既带来了使用的不便,也增加了代码的耦合性、复杂性和出现bug的概率,缺乏通用性。
同步:是指一个进程在执行某个请求的时候,若这个请求没有执行完成,那么这个进程将会一直等待下去,直到这个请求执行完毕,才会继续执行下面的请求。异步:是指一个进程在执行某个请求的时候,如果这个请求没有执行完毕,进程不会等待,而是继续执行下面的请求
图1为本发明实施例提供的一种同步转异步的任务处理方法的流程图,本实施例可适用于处理同步转异步的任务的情况,该方法可以由同步转异步的任务处理装置来执行,该装置可以通过软件和/或硬件的形式实现,可选的,通过电子设备来实现,该电子设备可以是移动终端、PC端或服务器等。具体包括如下步骤:
S110,获取携带有同步转异步标签的目标任务。
其中,目标任务可以是通过面向切面编程(Aspect Oriented Programming,AOP)技术创建的,则同步转异步标签通过添加至目标任务对应的程序代码的注解中进行携带。相应的,获取携带有同步转异步标签的目标任务的方式可以是:使用切面,设置切入点,拦截标注了同步转异步注解的任务方法,即为携带有同步转异步标签的目标任务。
本实施例中,目标任务中包括有任务相关信息,且还携带有优先级信息。任务相关信息和优先级信息通过两个入参表示。
S120,将目标任务存储至数据库中,并配置目标任务的状态信息及执行时间信息。
其中,执行时间信息包括执行过期时间及下一次执行时间。执行过期时间可以理解为目标任务的有效期,可以通过当前时间+设定时长的方式设置,例如:设置为当前时间+1个小时,即目标任务的有效期为未来1小时内。执行过期时间l可以根据需求任意设置,此处不做限定。下一次执行时间可以理解为下一次执行目标任务的时间,当时间到达下一次执行时间时,可以执行该目标任务。状态信息包括:初始状态、重试状态、执行中状态、失败状态及成功状态。
本实施例中,目标任务被存储至数据库且未被执行过时,状态信息配置为初始状态,下一次执行时间配置为第一设定值。随着目标任务被执行的情况,状态信息和下一次执行时间被不断的更新。其中,第一设定值可以为0。
具体的,将目标任务存储至数据库中的方式可以是:提取目标任务的任务相关信息,并对目标任务设置任务标识;将任务标识与任务相关信息以键值对的方式存储至数据库中。
其中,任务标识可以以编号或编码的形式体现。本实施例中,在将任务标识与任务相关信息以键值对的方式存储至数据库中之后,就可以通过任务标识查询到对应的目标任务。
S130,每隔设定时长扫描数据库中的目标任务。
其中,设定时长可以预先设置。本实施例中,通过启动任务线程的方式来扫描数据库中的目标任务。
具体的,每隔设定时长扫描数据库中的目标任务的方式可以是:每隔设定时长启动一任务线程,并对任务线程添加全局锁;基于任务线程扫描任务标识列表;基于扫描的任务标识列表中的各任务标识从数据库中获取对应的目标任务。
其中,全局锁的作用是防止并发状态下,有多台机器同时启动任务线程,防止同一目标任务被重复执行。本实施例中,在基于任务线程扫描任务标识列表后,基于扫描的任务标识列表中的各任务标识从数据库中获取对应的目标任务。
可选的,基于扫描的任务标识列表中的各任务标识从数据库中获取对应的目标任务的方式可以是:对任务标识列表中各任务标识分别创建线程执行器;基于线程执行器根据任务标识从数据库中获取对应的目标任务。
其中,线程执行器与目标任务一一对应,即一个线程执行器执行一个目标任务。本实施例中,在扫描到任务标识列表中的各任务标识后,为各任务标识分别创建线程执行器,以基于创建的线程执行器根据任务标识从数据库中获取对应的目标任务。
其中,目标任务还携带有优先级信息。相应的,对任务标识列表中各任务标识分别创建线程执行器的方式可以是:基于优先级信息从任务标识列表中提取设定数量的任务标识;对提取出的各任务标识分别创建线程执行器。
其中,基于优先级信息从任务标识列表中提取设定数量的任务标识可以理解为:从任务标识列表中优先提取优先级较高的设定数量的任务标识。在提取出设定数量的任务标识后,对提取出的各任务标识分别创建线程执行器,从而基于线程执行器根据提取出的任务标识从数据库中获取对应的目标任务。
S140,根据状态信息和/或执行时间信息判断扫描到的目标任务是否满足执行条件,若满足执行条件,则执行S150。
其中,状态信息包括:初始状态、重试状态、执行中状态、失败状态及成功状态。目标任务被存储至数据库且未被执行过时,状态信息为初始状态;随着目标任务被执行的情况,状态信息在不断的更新。
具体的,根据所述状态信息和/或所述执行时间信息判断扫描到的目标任务是否满足执行条件的过程可以是:若所述状态信息和/或所述执行时间信息满足如下任意一种条件,则扫描到的目标任务满足执行条件:状态信息为初始状态,且下一次执行时间为第一设定值;或者,状态信息为重试状态,且下一次执行时间小于当前时间;或者,状态信息为执行中状态,下一次执行时间为第一设定值且执行过期时间小于当前时间。
其中,若目标任务的状态信息为初始状态,且下一次执行时间为第一设定值,则表明该目标任务还未被执行过,则该目标任务满足执行条件。若目标任务的状态信息为重试状态,且下一次执行时间小于当前时间,则表明该目标任务被重试执行过,且还未到达设定重试次数,则该目标任务满足执行条件。若目标任务的状态信息为执行中状态,下一次执行时间为第一设定值且执行过期时间小于当前时间,表明该目标任务在被执行的过程中可能出现宕机的情况,该任务未被执行完成,则该目标任务满足执行条件。
S150,执行目标任务,并根据执行结果更新状态信息和/或执行时间信息。
其中,执行结果包括执行成功和执行失败。
具体的,根据执行结果更新状态信息和/或执行时间信息的方式可以是:若执行结果为执行成功,则将目标任务的状态信息更新为成功状态,且将执行过期时间及下一次执行时间均更新为第二设定值;若执行结果为执行失败,则获取目标任务的已重试次数及目标重试次数,根据已重试次数和目标重试次数更新状态信息和/或执行时间信息。
其中,第二设定值可以是预先设置,例如:设置为-1。目标重试次数可以理解为目标任务可以重试的总次数,可以预先设置。
可选的,根据已重试次数和目标重试次数更新状态信息和/或执行时间信息的方式可以是:若已重试次数等于目标重试次数,则将目标任务的状态信息更新为失败状态,且将执行过期时间及下一次执行时间均更新为第二设定值;若已重试次数小于目标重试次数,则将目标任务的状态信息更新为重试状态,且将执行过期时间更新为第二设定值,根据剩余重试次数和重试间隔更新下一次执行时间。
其中,若目标任务的已重试次数等于目标重试次数,表明目标任务已经没有重试机会,则将目标任务的状态信息更新为失败状态,且将执行过期时间及下一次执行时间均更新为第二设定值。若目标任务的已重试次数小于目标重试次数,表明目标任务还有重试机会,则将目标任务的状态信息更新为重试状态,且将执行过期时间更新为第二设定值,根据剩余重试次数和重试间隔更新下一次执行时间。
其中,根据剩余重试次数和重试间隔更新下一次执行时间可以按照如下公式计算:下一次执行时间=当前时间+剩余重试次数*重试间隔。
本实施例中,更新目标认为的状态信息和执行时间信息,可以防止目标任务被重新执行,或者被遗漏执行。
可选的,该方法还包括如下步骤:在执行目标任务的过程中,将状态信息更新为执行中状态。
具体的,当目标任务被线程执行器执行时,则将其状态信息更新为执行中状态。
可选的,该方法还包括:对于状态信息为初始状态或者执行中状态的目标任务,若目标任务的执行过期时间小于或等于当前时间,则将执行过期时间延后。
其中,若目标任务的执行过期时间小于或等于当前时间,且其状态信息为初始状态或者执行中状态,表明该目标任务还未被执行完成,但是已经超过其有效期,为了防止该目标任务被遗漏执行,则将其执行过期时间延后,以保证该目标任务处于执行过期时间之内。
在上述实施例的基础上,图2是本发明实施例提供的一种同步转异步的任务处理方法的流程图,如图2所示,该方法包括如下步骤:
S201,拦截携带有同步转异步标签的目标任务。
S202,提取目标任务的任务相关信息,并对目标任务设置任务标识;将任务标识与任务相关信息以键值对的方式存储至数据库中。
S203,每隔设定时长启动一任务线程,并对任务线程添加全局锁,基于任务线程扫描任务标识列表。
S204,基于优先级信息从任务标识列表中提取设定数量的任务标识;对提取出的各任务标识分别创建线程执行器。
S205,基于线程执行器根据任务标识从数据库中获取对应的目标任务。
S206,若状态信息和/或执行时间信息满足如下任意一种条件,则扫描到的目标任务满足执行条件:状态信息为初始状态,且下一次执行时间为第一设定值;或者,状态信息为重试状态,且下一次执行时间小于当前时间;或者,状态信息为执行中状态,下一次执行时间为第一设定值且执行过期时间小于当前时间。
S207,若执行结果为执行成功,则将目标任务的状态信息更新为成功状态,且将执行过期时间及下一次执行时间均更新为第二设定值。
S208,若执行结果为执行失败,则获取目标任务的已重试次数及目标重试次数。
S209,若已重试次数等于目标重试次数,则将目标任务的状态信息更新为失败状态,且将执行过期时间及下一次执行时间均更新为第二设定值.
S210,若已重试次数小于目标重试次数,则将目标任务的状态信息更新为重试状态,且将执行过期时间更新为第二设定值,根据剩余重试次数和重试间隔更新下一次执行时间。
本实施例的技术方案,获取携带有同步转异步标签的目标任务;将目标任务存储至数据库中,并配置目标任务的状态信息及执行时间信息;其中,执行时间信息包括执行过期时间及下一次执行时间;每隔设定时长扫描数据库中的目标任务;根据状态信息和/或执行时间信息判断扫描到的目标任务是否满足执行条件;若扫描到的任务满足执行条件,则执行目标任务,并根据执行结果更新状态信息和/或执行时间信息。本发明实施例提供的同步转异步的任务处理方法,将携带有同步转异步标签的目标任务存储于数据库中,当目标任务满足执行条件时,异步处理该目标任务,可以提高同步转异步的可靠性。
图3是本发明实施例提供的一种同步转异步的任务处理装置的结构示意图,如图3所示,该装置包括:
目标任务获取模块310,用于获取携带有同步转异步标签的目标任务;
目标任务存储模块320,用于将目标任务存储至数据库中,并配置目标任务的状态信息及执行时间信息;其中,执行时间信息包括执行过期时间及下一次执行时间;
目标任务扫描模块330,用于每隔设定时长扫描数据库中的目标任务;
执行条件判断模块340,用于根据状态信息和/或执行时间信息判断扫描到的目标任务是否满足执行条件;
目标任务执行模块350,用于若扫描到的任务满足执行条件,则执行目标任务,并根据执行结果更新状态信息和/或执行时间信息。
可选的,目标任务存储模块320,还用于:
提取目标任务的任务相关信息,并对目标任务设置任务标识;
将任务标识与任务相关信息以键值对的方式存储至数据库中。
可选的,目标任务扫描模块330,还用于:
每隔设定时长启动一任务线程,并对任务线程添加全局锁;
基于任务线程扫描任务标识列表;
基于扫描的任务标识列表中的各任务标识从数据库中获取对应的目标任务。
可选的,目标任务扫描模块330,还用于:
对任务标识列表中各任务标识分别创建线程执行器;
基于线程执行器根据任务标识从数据库中获取对应的目标任务。
可选的,目标任务还携带有优先级信息,可选的,目标任务扫描模块330,还用于:
基于优先级信息从任务标识列表中提取设定数量的任务标识;
对提取出的各任务标识分别创建线程执行器。
可选的,状态信息包括:初始状态、重试状态、执行中状态、失败状态及成功状态。
可选的,执行条件判断模块340,还用于:
若状态信息和/或执行时间信息满足如下任意一种条件,则扫描到的目标任务满足执行条件:
状态信息为初始状态,且下一次执行时间为第一设定值;或者,
状态信息为重试状态,且下一次执行时间小于当前时间;或者,
状态信息为执行中状态,下一次执行时间为第一设定值且执行过期时间小于当前时间。
可选的,目标任务执行模块350,还用于:
若执行结果为执行成功,则将目标任务的状态信息更新为成功状态,且将执行过期时间及下一次执行时间均更新为第二设定值;
若执行结果为执行失败,则获取目标任务的已重试次数及目标重试次数,根据已重试次数和目标重试次数更新状态信息和/或执行时间信息。
可选的,目标任务执行模块350,还用于:
若已重试次数等于目标重试次数,则将目标任务的状态信息更新为失败状态,且将执行过期时间及下一次执行时间均更新为第二设定值;
若已重试次数小于目标重试次数,则将目标任务的状态信息更新为重试状态,且将执行过期时间更新为第二设定值,根据剩余重试次数和重试间隔更新下一次执行时间。
可选的,目标任务执行模块350,还用于:
在执行目标任务的过程中,将状态信息更新为执行中状态。
可选的,还包括:执行过期时间延后模块,用于:
对于状态信息为初始状态或者执行中状态的目标任务,若目标任务的执行过期时间小于或等于当前时间,则将执行过期时间延后。
上述装置可执行本发明前述所有实施例所提供的方法,具备执行上述方法相应的功能模块和有益效果。未在本实施例中详尽描述的技术细节,可参见本发明前述所有实施例所提供的方法。
图4示出了可以用来实施本发明的实施例的电子设备10的结构示意图。电子设备旨在表示各种形式的数字计算机,诸如,膝上型计算机、台式计算机、工作台、个人数字助理、服务器、刀片式服务器、大型计算机、和其它适合的计算机。电子设备还可以表示各种形式的移动装置,诸如,个人数字处理、蜂窝电话、智能电话、可穿戴设备(如头盔、眼镜、手表等)和其它类似的计算装置。本文所示的部件、它们的连接和关系、以及它们的功能仅仅作为示例,并且不意在限制本文中描述的和/或者要求的本发明的实现。
如图4所示,电子设备10包括至少一个处理器11,以及与至少一个处理器11通信连接的存储器,如只读存储器(ROM)12、随机访问存储器(RAM)13等,其中,存储器存储有可被至少一个处理器执行的计算机程序,处理器11可以根据存储在只读存储器(ROM)12中的计算机程序或者从存储单元18加载到随机访问存储器(RAM)13中的计算机程序,来执行各种适当的动作和处理。在RAM 13中,还可存储电子设备10操作所需的各种程序和数据。处理器11、ROM 12以及RAM 13通过总线14彼此相连。输入/输出(I/O)接口15也连接至总线14。
电子设备10中的多个部件连接至I/O接口15,包括:输入单元16,例如键盘、鼠标等;输出单元17,例如各种类型的显示器、扬声器等;存储单元18,例如磁盘、光盘等;以及通信单元19,例如网卡、调制解调器、无线通信收发机等。通信单元19允许电子设备10通过诸如因特网的计算机网络和/或各种电信网络与其他设备交换信息/数据。
处理器11可以是各种具有处理和计算能力的通用和/或专用处理组件。处理器11的一些示例包括但不限于中央处理单元(CPU)、图形处理单元(GPU)、各种专用的人工智能(AI)计算芯片、各种运行机器学习模型算法的处理器、数字信号处理器(DSP)、以及任何适当的处理器、控制器、微控制器等。处理器11执行上文所描述的各个方法和处理,例如同步转异步的任务处理方法。
在一些实施例中,同步转异步的任务处理方法可被实现为计算机程序,其被有形地包含于计算机可读存储介质,例如存储单元18。在一些实施例中,计算机程序的部分或者全部可以经由ROM 12和/或通信单元19而被载入和/或安装到电子设备10上。当计算机程序加载到RAM 13并由处理器11执行时,可以执行上文描述的同步转异步的任务处理方法的一个或多个步骤。备选地,在其他实施例中,处理器11可以通过其他任何适当的方式(例如,借助于固件)而被配置为执行同步转异步的任务处理方法。
本文中以上描述的系统和技术的各种实施方式可以在数字电子电路系统、集成电路系统、场可编程门阵列(FPGA)、专用集成电路(ASIC)、专用标准产品(ASSP)、芯片上系统的系统(SOC)、负载可编程逻辑设备(CPLD)、计算机硬件、固件、软件、和/或它们的组合中实现。这些各种实施方式可以包括:实施在一个或者多个计算机程序中,该一个或者多个计算机程序可在包括至少一个可编程处理器的可编程系统上执行和/或解释,该可编程处理器可以是专用或者通用可编程处理器,可以从存储系统、至少一个输入装置、和至少一个输出装置接收数据和指令,并且将数据和指令传输至该存储系统、该至少一个输入装置、和该至少一个输出装置。
用于实施本发明的方法的计算机程序可以采用一个或多个编程语言的任何组合来编写。这些计算机程序可以提供给通用计算机、专用计算机或其他可编程数据处理装置的处理器,使得计算机程序当由处理器执行时使流程图和/或框图中所规定的功能/操作被实施。计算机程序可以完全在机器上执行、部分地在机器上执行,作为独立软件包部分地在机器上执行且部分地在远程机器上执行或完全在远程机器或服务器上执行。
在本发明的上下文中,计算机可读存储介质可以是有形的介质,其可以包含或存储以供指令执行系统、装置或设备使用或与指令执行系统、装置或设备结合地使用的计算机程序。计算机可读存储介质可以包括但不限于电子的、磁性的、光学的、电磁的、红外的、或半导体系统、装置或设备,或者上述内容的任何合适组合。备选地,计算机可读存储介质可以是机器可读信号介质。机器可读存储介质的更具体示例会包括基于一个或多个线的电气连接、便携式计算机盘、硬盘、随机存取存储器(RAM)、只读存储器(ROM)、可擦除可编程只读存储器(EPROM或快闪存储器)、光纤、便捷式紧凑盘只读存储器(CD-ROM)、光学储存设备、磁储存设备、或上述内容的任何合适组合。
为了提供与用户的交互,可以在电子设备上实施此处描述的系统和技术,该电子设备具有:用于向用户显示信息的显示装置(例如,CRT(阴极射线管)或者LCD(液晶显示器)监视器);以及键盘和指向装置(例如,鼠标或者轨迹球),用户可以通过该键盘和该指向装置来将输入提供给电子设备。其它种类的装置还可以用于提供与用户的交互;例如,提供给用户的反馈可以是任何形式的传感反馈(例如,视觉反馈、听觉反馈、或者触觉反馈);并且可以用任何形式(包括声输入、语音输入或者、触觉输入)来接收来自用户的输入。
可以将此处描述的系统和技术实施在包括后台部件的计算系统(例如,作为数据服务器)、或者包括中间件部件的计算系统(例如,应用服务器)、或者包括前端部件的计算系统(例如,具有图形用户界面或者网络浏览器的用户计算机,用户可以通过该图形用户界面或者该网络浏览器来与此处描述的系统和技术的实施方式交互)、或者包括这种后台部件、中间件部件、或者前端部件的任何组合的计算系统中。可以通过任何形式或者介质的数字数据通信(例如,通信网络)来将系统的部件相互连接。通信网络的示例包括:局域网(LAN)、广域网(WAN)、区块链网络和互联网。
计算系统可以包括客户端和服务器。客户端和服务器一般远离彼此并且通常通过通信网络进行交互。通过在相应的计算机上运行并且彼此具有客户端-服务器关系的计算机程序来产生客户端和服务器的关系。服务器可以是云服务器,又称为云计算服务器或云主机,是云计算服务体系中的一项主机产品,以解决了传统物理主机与VPS服务中,存在的管理难度大,业务扩展性弱的缺陷。
本发明实施例还提供了一种计算机程序产品,包括计算机程序,该计算机程序在被处理器执行时实现如本申请任一实施例所提供的同步转异步的任务处理方法。
计算机程序产品在实现的过程中,可以以一种或多种程序设计语言或其组合来编写用于执行本发明操作的计算机程序代码,程序设计语言包括面向对象的程序设计语言,诸如Java、Smalltalk、C++,还包括常规的过程式程序设计语言,诸如“C”语言或类似的程序设计语言。程序代码可以完全地在用户计算机上执行、部分地在用户计算机上执行、作为一个独立的软件包执行、部分在用户计算机上部分在远程计算机上执行、或者完全在远程计算机或服务器上执行。在涉及远程计算机的情形中,远程计算机可以通过任意种类的网络——包括局域网(LAN)或广域网(WAN)—连接到用户计算机,或者,可以连接到外部计算机(例如利用因特网服务提供商来通过因特网连接)。
应该理解,可以使用上面所示的各种形式的流程,重新排序、增加或删除步骤。例如,本发明中记载的各步骤可以并行地执行也可以顺序地执行也可以不同的次序执行,只要能够实现本发明的技术方案所期望的结果,本文在此不进行限制。
上述具体实施方式,并不构成对本发明保护范围的限制。本领域技术人员应该明白的是,根据设计要求和其他因素,可以进行各种修改、组合、子组合和替代。任何在本发明的精神和原则之内所作的修改、等同替换和改进等,均应包含在本发明保护范围之内。
Claims (15)
1.一种同步转异步的任务处理方法,其特征在于,包括:
获取携带有同步转异步标签的目标任务;
将所述目标任务存储至数据库中,并配置所述目标任务的状态信息及执行时间信息;其中,所述执行时间信息包括执行过期时间及下一次执行时间;
每隔设定时长扫描所述数据库中的目标任务;
根据所述状态信息和/或所述执行时间信息判断扫描到的目标任务是否满足执行条件;
若扫描到的任务满足执行条件,则执行所述目标任务,并根据执行结果更新所述状态信息和/或执行时间信息。
2.根据权利要求1所述的方法,其特征在于,将所述目标任务存储至数据库中,包括:
提取所述目标任务的任务相关信息,并对所述目标任务设置任务标识;
将所述任务标识与所述任务相关信息以键值对的方式存储至数据库中。
3.根据权利要求2所述的方法,其特征在于,每隔设定时长扫描所述数据库中的目标任务,包括:
每隔设定时长启动一任务线程,并对所述任务线程添加全局锁;
基于所述任务线程扫描所述任务标识列表;
基于扫描的所述任务标识列表中的各任务标识从所述数据库中获取对应的目标任务。
4.根据权利要求3所述的方法,其特征在于,基于扫描的所述任务标识列表中的各任务标识从所述数据库中获取对应的目标任务,包括:
对所述任务标识列表中各任务标识分别创建线程执行器;
基于所述线程执行器根据所述任务标识从所述数据库中获取对应的目标任务。
5.根据权利要求4所述的方法,其特征在于,所述目标任务还携带有优先级信息,对所述任务标识列表中各任务标识分别创建线程执行器,包括:
基于所述优先级信息从所述任务标识列表中提取设定数量的任务标识;
对提取出的各任务标识分别创建线程执行器。
6.根据权利要求1所述的方法,其特征在于,所述状态信息包括:初始状态、重试状态、执行中状态、失败状态及成功状态。
7.根据权利要求6所述的方法,其特征在于,根据所述状态信息和/或所述执行时间信息判断扫描到的目标任务是否满足执行条件,包括:
若所述状态信息和/或所述执行时间信息满足如下任意一种条件,则扫描到的目标任务满足执行条件:
状态信息为初始状态,且所述下一次执行时间为第一设定值;或者,
状态信息为重试状态,且所述下一次执行时间小于当前时间;或者,
状态信息为执行中状态,下一次执行时间为所述第一设定值且所述执行过期时间小于所述当前时间。
8.根据权利要求6所述的方法,其特征在于,根据执行结果更新所述状态信息和/或执行时间信息,包括:
若执行结果为执行成功,则将所述目标任务的状态信息更新为成功状态,且将所述执行过期时间及下一次执行时间均更新为第二设定值;
若执行结果为执行失败,则获取所述目标任务的已重试次数及目标重试次数,根据所述已重试次数和所述目标重试次数更新所述状态信息和/或执行时间信息。
9.根据权利要求8所述的方法,其特征在于,根据所述已重试次数和所述目标重试次数更新所述状态信息和/或执行时间信息,包括:
若所述已重试次数等于所述目标重试次数,则将所述目标任务的状态信息更新为失败状态,且将所述执行过期时间及下一次执行时间均更新为第二设定值;
若所述已重试次数小于所述目标重试次数,则将所述目标任务的状态信息更新为重试状态,且将所述执行过期时间更新为第二设定值,根据剩余重试次数和重试间隔更新下一次执行时间。
10.根据权利要求6所述的方法,其特征在于,还包括:
在执行所述目标任务的过程中,将状态信息更新为执行中状态。
11.根据权利要求6所述的方法,其特征在于,还包括:
对于状态信息为初始状态或者执行中状态的目标任务,若所述目标任务的执行过期时间小于或等于当前时间,则将所述执行过期时间延后。
12.一种同步转异步的任务处理装置,其特征在于,包括:
目标任务获取模块,用于获取携带有同步转异步标签的目标任务;
目标任务存储模块,用于将所述目标任务存储至数据库中,并配置所述目标任务的状态信息及执行时间信息;其中,所述执行时间信息包括执行过期时间及下一次执行时间;
目标任务扫描模块,用于每隔设定时长扫描所述数据库中的目标任务;
执行条件判断模块,用于根据所述状态信息和/或所述执行时间信息判断扫描到的目标任务是否满足执行条件;
目标任务执行模块,用于若扫描到的任务满足执行条件,则执行所述目标任务,并根据执行结果更新所述状态信息和/或执行时间信息。
13.一种电子设备,其特征在于,所述电子设备包括:
至少一个处理器;以及
与所述至少一个处理器通信连接的存储器;其中,
所述存储器存储有可被所述至少一个处理器执行的计算机程序,所述计算机程序被所述至少一个处理器执行,以使所述至少一个处理器能够执行权利要求1-11中任一项所述的同步转异步的任务处理方法。
14.一种计算机可读存储介质,其特征在于,所述计算机可读存储介质存储有计算机指令,所述计算机指令用于使处理器执行时实现权利要求1-11中任一项所述的同步转异步的任务处理方法。
15.一种计算机程序产品,包括计算机程序,其特征在于,所述计算机程序在被处理器执行时实现如权利要求1-11中任一项所述的同步转异步的任务处理方法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202410057443.8A CN117873682A (zh) | 2024-01-15 | 2024-01-15 | 同步转异步的任务处理方法、装置、设备、介质及产品 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202410057443.8A CN117873682A (zh) | 2024-01-15 | 2024-01-15 | 同步转异步的任务处理方法、装置、设备、介质及产品 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN117873682A true CN117873682A (zh) | 2024-04-12 |
Family
ID=90590006
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202410057443.8A Pending CN117873682A (zh) | 2024-01-15 | 2024-01-15 | 同步转异步的任务处理方法、装置、设备、介质及产品 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN117873682A (zh) |
-
2024
- 2024-01-15 CN CN202410057443.8A patent/CN117873682A/zh active Pending
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US20230020324A1 (en) | Task Processing Method and Device, and Electronic Device | |
CN114025037B (zh) | 一种云手机的检修方法、装置、电子设备和存储介质 | |
CN112948081B (zh) | 延时处理任务的方法、装置、设备以及存储介质 | |
CN112965799B (zh) | 任务状态的提示方法、装置、电子设备和介质 | |
CN112883041A (zh) | 一种数据更新方法、装置、电子设备及存储介质 | |
CN116545905A (zh) | 一种服务健康检测方法、装置、电子设备及存储介质 | |
CN117873682A (zh) | 同步转异步的任务处理方法、装置、设备、介质及产品 | |
CN116450176A (zh) | 版本更新方法、装置、电子设备及存储介质 | |
CN114554110B (zh) | 视频生成方法、装置、电子设备和存储介质 | |
CN115543416A (zh) | 一种配置更新方法、装置、电子设备及存储介质 | |
CN114691781A (zh) | 一种数据同步方法、系统、装置、设备及介质 | |
CN116719621B (zh) | 一种针对海量任务的数据回写方法、装置、设备及介质 | |
CN116244324B (zh) | 任务数据关系挖掘方法、装置、电子设备及存储介质 | |
CN115687244A (zh) | 文件处理监控方法、装置、设备及介质 | |
CN117520456A (zh) | 一种数据同步方法、装置、电子设备以及存储介质 | |
CN118093211A (zh) | 一种分布式锁的处理方法、装置、设备及介质 | |
CN117156398A (zh) | 消息处理方法、装置、电子设备及存储介质 | |
CN116521739A (zh) | 一种数据处理方法、装置及电子设备 | |
CN116860826A (zh) | 基于时序数据库的数据处理方法、装置、设备及介质 | |
CN116302371A (zh) | 事务可见性判断方法、装置、设备及存储介质 | |
CN117873787A (zh) | 数据备份和恢复方法、装置、设备及存储介质 | |
CN116775299A (zh) | 验证码图片获取方法、装置、电子设备及存储介质 | |
CN118018405A (zh) | 一种物联网设备的升级方法、装置、服务器及存储介质 | |
CN115858104A (zh) | 一种事务提交序号快照获取方法、装置、设备及存储介质 | |
CN117827949A (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 |