业务请求的处理方法、装置、设备和存储介质制造方法及图纸

技术编号:28478112 阅读:15 留言:0更新日期:2021-05-15 21:47
本申请提供一种业务请求的处理方法、装置、设备和存储介质,应用于电子交易系统,系统设置有不同延时等级的多个工作线程组,处理方法包括:收到业务请求后,确定该业务请求所属延时等级;获取所属延时等级匹配的工作线程组中的目标工作线程;利用目标工作线程基于工作线程组的延时等级对应的轮询参数(包括轮询次数上限和轮询间隔)处理业务请求。轮询次数和轮询间隔可以控制不同延时等级的工作线程处理业务请求的延时,本方案利用与业务请求的延时等级匹配的工作线程处理业务请求,保障处理过程的延时满足不同业务请求的需求。过程的延时满足不同业务请求的需求。过程的延时满足不同业务请求的需求。

【技术实现步骤摘要】
业务请求的处理方法、装置、设备和存储介质


[0001]本专利技术涉及计算机
,特别涉及一种业务请求的处理方法、装置、设备和存储介质。

技术介绍

[0002]电子交易系统是一种利用计算机程序实现各类业务请求的自动处理的系统。为了处理系统中多个账户提出的大量业务请求,目前的电子交易系统往往会采用多线程机制,即预先创建多个工作线程,每个工作线程都有对应的工作队列,多个工作线程可以并行地从各自的工作队列读取并处理业务请求(一般由通信线程写入)。
[0003]为了节约计算机资源,现有的多线程机制中一般采用事件通知机制触发工作线程处理业务请求,即通信线程向某个工作队列写入一个业务请求,然后通过工作线程通知事件通知对应的工作线程读取该业务请求。
[0004]事件通知机制的问题在于,业务请求的处理过程,特别是从通信线程写入业务请求到工作线程读取业务请求之间,存在较长的延时(至少为5μs),而电子交易系统中存在大量不同业务请求,部分业务请求可以接受较长延时,而部分业务请求无法接受5μs的延时。因此,事件通知机制无法满足系统中不同业务请求的不同延时需求。

技术实现思路

[0005]基于上述现有技术的问题,本申请提供一种业务请求的处理方法、装置、设备和存储介质,以满足电子交易系统中不同业务请求的延时需求。
[0006]本申请第一方面提供一种业务请求的处理方法,应用于电子交易系统,所述电子交易系统包括对应于不同延时等级的工作线程组,每个所述工作线程组均包含至少一个工作线程,所述处理方法包括:接收业务请求;确定所述业务请求所属延时等级;其中,所述业务请求所属延时等级与所述业务请求的请求账户或交易对象可接受的延时相关;所述请求账户指代发送所述业务请求的账户;将所述业务请求所属延时等级相匹配的工作线程组包含的一个工作线程作为目标工作线程;利用所述目标工作线程基于所属工作线程组的延时等级对应的轮询参数处理所述业务请求;其中,所述轮询参数包括轮询次数上限和轮询间隔。
[0007]可选的,所述利用所述目标工作线程基于所属工作线程组的延时等级对应的轮询参数处理所述业务请求,包括:查询所述目标工作线程的工作队列中是否有所述业务请求;在所述目标工作线程的工作队列中有所述业务请求时,从所述目标工作线程的工作队列读取所述业务请求,并利用所述目标工作线程预设的业务处理逻辑处理所述业务请
求;在所述目标工作线程的工作队列中没有所述业务请求时,判断查询次数是否大于或等于所属工作线程组的延时等级对应的轮询次数上限,直至判断出查询次数大于或等于所属工作线程组的延时等级对应的轮询次数上限时,根据所属工作线程组的延时等级对应的轮询间隔,确定当前睡眠时长,并进入睡眠状态;其中,所述查询次数在进入睡眠状态时清零;当处于睡眠状态的时间达到所述当前睡眠时长时,退出睡眠状态,返回执行所述查询所述目标工作线程的工作队列中是否有所述业务请求步骤。
[0008]可选的,所述根据所属工作线程组的延时等级对应的轮询间隔,确定当前睡眠时长,包括:判断前一次进入睡眠状态时的睡眠时长,是否大于或等于所属工作线程组的延时等级对应的轮询间隔;若前一次进入睡眠状态时的睡眠时长大于或等于所属工作线程组的延时等级对应的轮询间隔,将预设的初始睡眠时长确定为当前睡眠时长;若前一次进入睡眠状态时的睡眠时长小于所属工作线程组的延时等级对应的轮询间隔,按预设的步长上调前一次进入睡眠状态时的睡眠时长,得到当前睡眠时长。
[0009]可选的,所述从所述目标工作线程的工作队列读取所述业务请求,包括:从所述目标工作线程的工作队列,读取所述业务请求和请求账户的数据指针;其中,所述请求账户指代发送所述业务请求的账户;所述请求账户的数据指针与所述业务请求一并被写入所述目标工作线程的工作队列;所述请求账户的数据指针用于指示所述请求账户的账户数据的存储地址。
[0010]可选的,所述利用所述目标工作线程基于所述工作线程组的延时等级对应的轮询参数处理所述业务请求之前,还包括:若未获取到目标工作线程,利用通信线程按预设的业务处理逻辑处理所述业务请求;若获取到目标工作线程,执行所述利用所述目标工作线程基于所属工作线程组的延时等级对应的轮询参数处理所述业务请求步骤。
[0011]本申请第二方面提供一种业务请求的处理装置,应用于电子交易系统,所述电子交易系统包括对应于不同延时等级的工作线程组,每个所述工作线程组均包含至少一个工作线程,所述处理装置包括:接收单元,用于接收业务请求;确定单元,用于确定所述业务请求所属延时等级;其中,所述业务请求所属延时等级与所述业务请求的请求账户或交易对象可接受的延时相关;所述请求账户指代发送所述业务请求的账户;获取单元,用于将所述业务请求所属延时等级相匹配的工作线程组包含的一个工作线程作为目标工作线程;处理单元,用于利用所述目标工作线程基于所属工作线程组的延时等级对应的轮询参数处理所述业务请求;其中,所述轮询参数包括轮询次数上限和轮询间隔。
[0012]可选的,所述处理单元利用所述目标工作线程基于所属工作线程组的延时等级对
应的轮询参数处理所述业务请求时,具体用于:查询所述目标工作线程的工作队列中是否有所述业务请求;在所述目标工作线程的工作队列中有所述业务请求时,从所述目标工作线程的工作队列读取所述业务请求,并利用所述目标工作线程预设的业务处理逻辑处理所述业务请求;在所述目标工作线程的工作队列中没有所述业务请求时,判断查询次数是否大于或等于所属工作线程组的延时等级对应的轮询次数上限,直至判断出查询次数大于或等于所属工作线程组的延时等级对应的轮询次数上限时,根据所属工作线程组的延时等级对应的轮询间隔,确定当前睡眠时长,并进入睡眠状态;其中,所述查询次数在进入睡眠状态时清零;当处于睡眠状态的时间达到所述当前睡眠时长时,退出睡眠状态,返回执行所述查询所述目标工作线程的工作队列中是否有所述业务请求步骤。
[0013]可选的,所述处理单元根据所属工作线程组的延时等级对应的轮询间隔,确定当前睡眠时长时,具体用于:判断前一次进入睡眠状态时的睡眠时长,是否大于或等于所属工作线程组的延时等级对应的轮询间隔;若前一次进入睡眠状态时的睡眠时长大于或等于所属工作线程组的延时等级对应的轮询间隔,将预设的初始睡眠时长确定为当前睡眠时长;若前一次进入睡眠状态时的睡眠时长小于所属工作线程组的延时等级对应的轮询间隔,按预设的步长上调前一次进入睡眠状态时的睡眠时长,得到当前睡眠时长。
[0014]可选的,所述处理单元从所述目标工作线程的工作队列读取所述业务请求时,具体用于:从所述目标工作线程的工作队列,读取所述业务请求和请求账户的数据指针;其中,所述请求账户指代发送所述业务请求的账户;所述请求账户的数据指针与所述业务请求一并被写入所述目标工作线程的工作队列;所述请求账户的数据指针用于指示所述请求账户的账户数据的存储地址。
[0015]可选的,所述处理单元还用于:若未获取到目标工作线程,按预设的业务处理逻辑处理所述业务请求;若获取到目标工作线程,执行所述利用本文档来自技高网
...

【技术保护点】

【技术特征摘要】
1.一种业务请求的处理方法,其特征在于,应用于电子交易系统,所述电子交易系统包括对应于不同延时等级的工作线程组,每个所述工作线程组均包含至少一个工作线程,所述处理方法包括:接收业务请求;确定所述业务请求所属延时等级;其中,所述业务请求所属延时等级与所述业务请求的请求账户或交易对象可接受的延时相关;所述请求账户指代发送所述业务请求的账户;将所述业务请求所属延时等级相匹配的工作线程组包含的一个工作线程作为目标工作线程;利用所述目标工作线程基于所属工作线程组的延时等级对应的轮询参数处理所述业务请求;其中,所述轮询参数包括轮询次数上限和轮询间隔。2.根据权利要求1所述的处理方法,其特征在于,所述利用所述目标工作线程基于所属工作线程组的延时等级对应的轮询参数处理所述业务请求,包括:查询所述目标工作线程的工作队列中是否有所述业务请求;在所述目标工作线程的工作队列中有所述业务请求时,从所述目标工作线程的工作队列读取所述业务请求,并利用所述目标工作线程预设的业务处理逻辑处理所述业务请求;在所述目标工作线程的工作队列中没有所述业务请求时,判断查询次数是否大于或等于所属工作线程组的延时等级对应的轮询次数上限,直至判断出查询次数大于或等于所属工作线程组的延时等级对应的轮询次数上限时,根据所属工作线程组的延时等级对应的轮询间隔,确定当前睡眠时长,并进入睡眠状态;其中,所述查询次数在进入睡眠状态时清零;当处于睡眠状态的时间达到所述当前睡眠时长时,退出睡眠状态,返回执行所述查询所述目标工作线程的工作队列中是否有所述业务请求步骤。3.根据权利要求2所述的处理方法,其特征在于,所述根据所属工作线程组的延时等级对应的轮询间隔,确定当前睡眠时长,包括:判断前一次进入睡眠状态时的睡眠时长,是否大于或等于所属工作线程组的延时等级对应的轮询间隔;若前一次进入睡眠状态时的睡眠时长大于或等于所属工作线程组的延时等级对应的轮询间隔,将预设的初始睡眠时长确定为当前睡眠时长;若前一次进入睡眠状态时的睡眠时长小于所属工作线程组的延时等级对应的轮询间隔,按预设的步长上调前一次进入睡眠状态时的睡眠时长,得到当前睡眠时长。4.根据权利要求2所述的处理方法,其特征在于,所述从所述目标工作线程的工作队列读取所述业务请求,包括:从所述目标工作线程的工作队列,读取所述业务请求和请求账户的数据指针;其中,所述请求账户指代发送所述业务请求的账户;所述请求账户的数据指针与所述业务请求一并被写入所述目标工作线程的工作队列;所述请求账户的数据指针用于指示所述请求账户的账户数据的存储地址。5.根据权利要求1所述的处理方法,其特征在于,所述利用所述目标工作线程基于所述工作线程组的延时等级对应的轮询参数处理所述业务请求之前,还包括:若未获取到目标工作线程,利用通信线程按预设的业务处理逻辑处理所述业务请求;若获取到目标工作线程,执行所述利用所述目标工作线程基于所属工作线程组的延时
等级对应的轮询参数处理所述业务请求步骤。6.一种业务请求的处理装置,其特征在于,应用于电子交易系统,所述电子交易系统包括对应于不同延时等级的工作线程组,每个所述工作线程组均包含至少一个工作线程,所述处理装置包括:接...

【专利技术属性】
技术研发人员:黄成何仲君柳正龙朱金奇
申请(专利权)人:恒生电子股份有限公司
类型:发明
国别省市:

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

1