任务处理方法、装置和存储介质制造方法及图纸

技术编号:27421187 阅读:9 留言:0更新日期:2021-02-21 14:39
本申请公开了一种任务处理方法、装置和存储介质,涉及计算机技术领域,所述方法包括:Redis脚本判断Redis服务器中是否初始化待处理任务的数量;若已初始化,则所述Redis脚本判断所述Redis服务器中的所述目标数量是否等于0;若所述目标数量大于0,则所述Redis脚本将所述目标数量减1并产生目标分段锁;所述Redis脚本检测所述Redis服务器中是否存在所述目标分段锁;若所述Redis服务器中不存在,则所述Redis脚本获取所述目标分段锁,并执行所述待处理任务。解决了现有技术中系统吞吐量较低的问题,达到了可以通过Redis脚本以及分段的方式,提高并发性进而提高系统吞吐量的效果。提高并发性进而提高系统吞吐量的效果。提高并发性进而提高系统吞吐量的效果。

【技术实现步骤摘要】
任务处理方法、装置和存储介质


[0001]本专利技术涉及一种任务处理方法、装置和存储介质,属于计算机


技术介绍

[0002]一个 Redis (Remote Dictionary Server ,远程字典服务)节点去竞争一把锁,分段锁是有多把锁多个库存,一个锁对应着一个库存,是一一对应关系, 程序随机的去竞争锁,如果竞争成功去扣减这把锁对应的库存数量,如果数量不足则又继续随机的从剩下的锁中去竞争。这样多把锁是同时运行多个用户竞争多把锁成功的,比之前的一把锁吞吐量明显要高。
[0003]传统的分布式锁只有一把,这就意味着在一段时间内只有持有锁的一个线程才能操作资源,这在高并发场景中就使得n个线程要串行执行(one by one),使得系统的吞吐量大幅下降。

技术实现思路

[0004]本专利技术的目的在于提供一种任务处理方法、装置和存储介质,用于解决现有技术中存在的问题。
[0005]为达到上述目的,本专利技术提供如下技术方案:根据第一方面,本专利技术实施例提供了一种任务处理方法,远程字典服务Redis脚本判断Redis服务器中是否初始化待处理任务的数量;初始化待处理任务为对待处理任务进行分段,每一分段对应一个Redis服务器,每个分段中包括目标数量的待处理任务;若未初始化,则按照预设分段规则将所述待处理任务进行分段,每个分段中包括所述目标数量的待处理任务;若已初始化,则所述Redis脚本判断所述Redis服务器中的所述目标数量是否等于0;若所述目标数量大于0,则所述Redis脚本将所述目标数量减1并产生目标分段锁;所述Redis脚本检测所述Redis服务器中是否存在所述目标分段锁;若所述Redis服务器中不存在,则所述Redis脚本获取所述目标分段锁,并执行所述待处理任务。
[0006]可选的,若所述Redis服务器中存在所述目标分段锁,则获取所述目标分段锁失败,所述Redis脚本重新产生另一目标分段锁。
[0007]可选的,执行所述待处理任务之后,所述方法还包括:检测所述待处理任务的数量是否等于0;若所述待处理任务的数量等于0,则释放所述目标分段锁。
[0008]可选的,所述Redis脚本判断Redis服务器中是否初始化待处理任务的数量之前,所述方法还包括:从至少两个Redis服务器中选择一个Redis服务器。
[0009]可选的,所述从至少两个Redis服务器中选择一个Redis服务器,包括:
按照预设顺序选择多个在线的Redis服务器中的一个Redis服务器。
[0010]可选的,所述从至少两个Redis服务器中选择一个Redis服务器,包括:从多个Redis服务器中随机选择一个在线的Redis服务器。
[0011]可选的,若某一分段中的待处理任务的数量等于0,则从其他分段中竞争分段锁。
[0012]第二方面,提供了一种任务处理装置,所述装置包括:存储器和处理器,所述存储器中存储有至少一条程序指令,所述处理器通过加载并执行所述至少一条程序指令以实现如第一方面所述的方法。
[0013]第三方面,提供了一种计算机存储介质,所述存储介质中存储有至少一条程序指令,所述至少一条程序指令被处理器加载并执行以实现如第一方面所述的方法。
[0014]通过Redis脚本判断Redis服务器中是否初始化待处理任务的数量;初始化待处理任务为对待处理任务进行分段,每一分段对应一个Redis服务器,每个分段中包括目标数量的待处理任务;若已初始化,则所述Redis脚本判断所述Redis服务器中的所述目标数量是否等于0;若所述目标数量大于0,则所述Redis脚本将所述目标数量减1并产生目标分段锁;所述Redis脚本检测所述Redis服务器中是否存在所述目标分段锁;若所述Redis服务器中不存在,则所述Redis脚本获取所述目标分段锁,并执行所述待处理任务。解决了现有技术中系统吞吐量较低的问题,达到了可以通过Redis脚本以及分段的方式,提高并发性进而提高系统吞吐量的效果。
[0015]上述说明仅是本专利技术技术方案的概述,为了能够更清楚了解本专利技术的技术手段,并可依照说明书的内容予以实施,以下以本专利技术的较佳实施例并配合附图详细说明如后。
附图说明
[0016]图1为本专利技术一个实施例提供的任务处理方法的方法流程图;图2为本专利技术一个实施例提供的任务处理方法的方法流程图。
具体实施方式
[0017]下面将结合附图对本专利技术的技术方案进行清楚、完整地描述,显然,所描述的实施例是本专利技术一部分实施例,而不是全部的实施例。基于本专利技术中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本专利技术保护的范围。在本专利技术的描述中,需要说明的是,术语“中心”、“上”、“下”、“左”、“右”、“竖 直”、“水平”、“内”、“外”等指示的方位或位置关系为基于附图所示的方位或位置关系,仅是为了便于描述本专利技术和简化描述,而不是指示或暗示所指的装置或元件必须具有特定的方位、以特定的方位构造和操作,因此不能理解为对本专利技术的限制。此外,术语“第一”、“第二”、“第三”仅用于描述目的,而不能理解为指示或暗示相对重要性。在本专利技术的描述中,需要说明的是,除非另有明确的规定和限定,术语“安装”、“相连”、“连接”应做广义理解,例如,可以是固定连接,也可以是可拆卸连接,或一体地连接;可以是机械连接,也可以是电连接;可以是直接相连,也可以通过中间媒介间接相连,可以是两个元件内部的连通。对于本领域的普通技术人员而言,可以具体情况理解上述术语在本专利技术中的具体含义。此外,下面所描述的本专利技术不同实施方式中所涉及的技术特征只要彼此之间 未构成冲突就可以相互结合。
[0018]请参考图1,其示出了本申请一个实施例提供的任务处理方法的方法流程图,如图
1所示,所述方法包括:步骤101,Redis脚本判断Redis服务器中是否初始化待处理任务的数量。
[0019]本申请通过Redis脚本实现分段锁,且在工业物联网中根据应用场景的不同,待处理的任务可以不同,比如以对产品检测出的缺陷进行修复为例,缺陷可以包括毛刺、气泡、裂纹等等,本申请除特殊说明外,以待处理任务为对毛刺进行修复来举例说明。初始化待处理任务为对待处理任务进行分段,每一分段对应一个Redis服务器,每个分段中包括目标数量的待处理任务。
[0020]步骤102,若已初始化,则所述Redis脚本判断所述Redis服务器中的所述目标数量是否等于0。
[0021]而若未初始化,则按照预设分段规则将所述待处理任务进行分段,每个分段中包括所述目标数量的待处理任务。
[0022]比如,待修复的毛刺有10000个,预设分段规则为分成10段,则每个分段中的待修复的毛刺的数量为1000个。也即在执行上述分段之后,即可有10个Redis服务器同时进行处理,提高了任务处理的并发性。
[0023]步骤103,若所述目标数量大于0,则所述Redis脚本将所述目标数量减1并产生目标分段锁。本文档来自技高网
...

【技术保护点】

【技术特征摘要】
1.一种任务处理方法,其特征在于,所述方法包括:远程字典服务Redis脚本判断Redis服务器中是否初始化待处理任务的数量;初始化待处理任务为对待处理任务进行分段,每一分段对应一个Redis服务器,每个分段中包括目标数量的待处理任务;若未初始化,则按照预设分段规则将所述待处理任务进行分段,每个分段中包括所述目标数量的待处理任务;若已初始化,则所述Redis脚本判断所述Redis服务器中的所述目标数量是否等于0;若所述目标数量大于0,则所述Redis脚本将所述目标数量减1并产生目标分段锁;所述Redis脚本检测所述Redis服务器中是否存在所述目标分段锁;若所述Redis服务器中不存在,则所述Redis脚本获取所述目标分段锁,并执行所述待处理任务。2.根据权利要求1所述的方法,其特征在于,若所述Redis服务器中存在所述目标分段锁,则获取所述目标分段锁失败,所述Redis脚本重新产生另一目标分段锁。3.根据权利要求1所述的方法,其特征在于,执行所述待处理任务之后,所述方法还包括:检测所述待处理任务的数量是否等于0;若所述待处理任务的数量等于0,则释放所述目标分段锁。4...

【专利技术属性】
技术研发人员:刘滨韩锦潘正颐侯大为
申请(专利权)人:常州微亿智造科技有限公司
类型:发明
国别省市:

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

1