一种任务并发控制方法技术

技术编号:36224317 阅读:48 留言:0更新日期:2023-01-04 12:23
本发明专利技术提出了一种任务并发控制方法,包括以下步骤:S1,设置通道并发量上限、用户基础并发量、用户优先级;S2,收到用户执行任务请求;S3,对用户身份进行识别,并获取用户基础并发量及用户优先级信息;S4,任务进入优先级等待队列,并根据用户优先级进行排序;S5,任务进入优先级就绪队列,临时调整各就绪队列的并发量;S6,短信发送;S7,保存发送日志。本发明专利技术能够在并发能力有限的情况下,通过对任务并发控制,提升和优化系统的并发能力。提升和优化系统的并发能力。提升和优化系统的并发能力。

【技术实现步骤摘要】
一种任务并发控制方法


[0001]本专利技术涉及数据处理领域,特别是涉及一种任务并发控制方法。

技术介绍

[0002]并发是指在一个时间段内有多个进程在执行;衡量一个系统或装置是否足够卓越,其并发能力是不可或缺的重要指标之一。但无论任何系统或装置其并发能力有多强,终究是有一个上限值的。因此,在系统或装置有限的并发能力下,如何提升或优化并发能力是一个亟待解决的问题。现有技术中暂没有一种任务并发控制方法,在并发能力有限的情况下,能避免系统负载过高,系统宕机,以及极端情况下系统全面瘫痪等问题。特别是在一些紧急短信通知任务或优先级高于其它类型的验证码服务等情况下,并发能力优化的作用就更加明显了。

技术实现思路

[0003]本专利技术旨在至少解决现有技术中存在的技术问题,特别创新地提出了一种任务并发控制方法。
[0004]为了实现本专利技术的上述目的,本专利技术提供了一种任务并发控制方法,包括以下步骤:
[0005]S1,设置通道并发量上限、用户基础并发量、用户优先级;所述所有用户的基础并发量之和应小于或等于通道并发量上限。
[0006]设置通道的并发量上限是为了能够让进入该通道的所有队列并发量在一个可控阈值内发送。设置用户基础并发量和优先级,是为了保证不同优先级的短信发送任务在进入同一通道时,最高优先级短信任务拥有更多的并发量,相对较低优先级的短信任务能有基础的并发量供其发送任务。
[0007]S2,收到用户执行任务请求;
[0008]S3,对用户身份进行识别,并获取用户基础并发量及用户优先级信息;
[0009]S4,任务进入优先级等待队列,并根据用户优先级进行排序;
[0010]S5,任务进入优先级就绪队列,临时调整各就绪队列的并发量;通过临时性提高或降低某任务队列的并发量时并不会影响其它任务的正常运行。
[0011]S6,短信发送;
[0012]S7,保存发送日志。
[0013]所述用户优先级为先决条件,在执行任务时,任务队列优先级最高的除获得本身的基础并发量外还将获得当前通道空闲的所有并发量。
[0014]进一步地,所述临时调整各就绪队列的并发量,分为三种情况,包括:
[0015]若当前就绪队列的优先级高于其它就绪队列的优先级时:系统将会把次于当前优先级就绪队列的临时并发量调整为基础并发量,而当前就绪队列的并发量调整为释放后的所有并发量;
[0016]若当前就绪队列的优先级低于任意一个其它就绪队列的优先级时:系统将从其它就绪队列中优先级最高的,从中释放出当前就绪队列的基础并发量供其执行任务;
[0017]若当前就绪队列的优先级等于正在执行任务中最高优先级的就绪队列时:正在执行的最高优先级就绪队列除释放当前就绪队列的基础并发量供其执行任务之外,还将释放除自身基础并发量的一半的额外并发量给当前就绪队列。
[0018]进一步地,所述步骤S5属于定期循环步骤,每当有一个任务队列执行完成后,会重新对当前正在执行的任务队列进行临时并发调整。
[0019]进一步地,所述S6包括:若短信发送成功,系统会保存其成功日志;若短信发送失败或延时,会分别存入失败队列和延时队列,然后根据系统规定的间隔时间将失败队列和延时对列的短信循环进入优先级就绪队列。
[0020]进一步地,在步骤S6中包括以下步骤:
[0021]S61,获取任务队列中待发送短信的条数,记作K,K为任务队列中待发送短信的总条数,分别为message1、message2、message3、
……
、message
K
,message1表示位于第1位待发送的短信即是待发送的首条短信,message2表示位于第2位待发送的短信,message3表示位于第3位待发送的短信,message
K
表示位于第K位待发送的短信即是待发送的最后一条短信;令循坏数j=1,判断数j

=K;
[0022]S62,对K条短信进行短信号计算,将其计算得到的K条短信号构成短信号集合Q={messageID1,messageID2,messageID3,

,messageID
K
},messageID1表示第1短信号,messageID2表示第2短信号,messageID3表示第3短信号,messageID
K
表示第K短信号;其短信号的计算方法为:
[0023]messageID
k
=Text messages num calculation function<message
k
(messagesContent)&message
k
(k)>,
[0024]messageID
k
表示第k短信号,k=1、2、3、
……
、K;
[0025]Text messages num calculation function<>表示短信号的计算方法,可以采用MD5或sha128;
[0026]message
k
(messagesContent)表示第k条短信的内容;
[0027]&表示串连字符;
[0028]message
k
(k)表示第k条短信所处队列的序号;
[0029]S63,判断第j位待发送的短信是否发送成功:
[0030]若第j位待发送的短信发送成功,则从短信号集合Q中将第j位待发送的短信所对应的短信号进行筛除;j

=j
′‑
1;
[0031]若第j位待发送的短信发送失败,则将第j位待发送的短信所对应的短信号存入失败队列;
[0032]S64,判断j、j

、K的大小关系:
[0033]若j≥Kandj

≤0,则结束;and表示逻辑关系且;优选的,若j≥Kandj

≤0and j

=0,则结束;j

=0表示短信号集合Q为空集,不存在元素短信号,j

=1,2,3,4,

表示短信号集合Q中短信号的个数为1个,2个,3个,4个
……

[0034]若j<K,则j=j+1;返回步骤S63;
[0035]进一步地,在步骤S63中从短信号集合Q中将第j位待发送的短信所对应的短信号
进行筛除的方法包括以下步骤:
[0036]S631,获取第j位待发送短信所处队列的序号和第j位待发送短信的内容;
[0037]S632,根据步骤S631所获取的第j位待发送短信所处队列的序号和第j位待发送短信的内容,计算得到筛除号,其筛除号的计算方法为:
[0本文档来自技高网
...

【技术保护点】

【技术特征摘要】
1.一种任务并发控制方法,其特征在于,包括以下步骤:S1,设置通道并发量上限、用户基础并发量、用户优先级;S2,收到用户执行任务请求;S3,对用户身份进行识别,并获取用户基础并发量及用户优先级信息;S4,任务进入优先级等待队列,并根据用户优先级进行排序;S5,任务进入优先级就绪队列,临时调整各就绪队列的并发量;S6,短信发送;S7,保存发送日志。2.根据权利要求1所述的一种任务并发控制方法,其特征在于,所述临时调整各就绪队列的并发量,分为三种情况,包括:若当前就绪队列的优先级高于其它就绪队列的优先级时:系统将会把次于当前优先级就绪队列的临时并发量调整为基础并发量,而当前就绪队列的并发量调整为释放后的所有并发量;若当前就绪队列的优先级低于任意一个其它就绪队列的优先级时:系统将从其它...

【专利技术属性】
技术研发人员:曹亮
申请(专利权)人:重庆米帕斯科技有限公司
类型:发明
国别省市:

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

1