1.一种基于信号量的流量控制方法,所述方法包括:
获取待处理任务,判断所述待处理任务对应的任务类型;
获取所述任务类型对应的信号量;
若所述信号量的许可已满,则获取所述信号量的许可借用配置;其中,所述许可借用配置用于描述所述信号量的借用属性和被借用属性;
若所述许可借用配置所描述的借用属性为允许借用,则查找目标信号量,所述目标信号量的许可借用配置所描述的被借用属性为允许被借用;
从所述目标信号量获取借用许可,并将所述借用许可分派给所述待处理任务;
将所述待处理任务添加至线程资源中,直至任务处理完成,释放所述借用许可。
2.根据权利要求1所述的方法,其特征在于,在所述获取所述任务类型对应的信号量之前,还包括:获取信号量许可总数;
根据所述任务类型的优先级确定对应信号量的初始许可数,所有所述信号量的初始许可数之和不大于所述信号量许可总数;
根据所述任务类型的优先级确定对应的所述信号量的许可借用配置。
3.根据权利要求1或2所述的方法,其特征在于,在所述若所述信号量的许可已满,则获取所述信号量的许可借用配置之后,还包括:若所述许可借用配置所描述的借用属性为不允许借用,则将所述待处理任务标记为阻塞等待许可;
当标记为阻塞等待许可的任务数量超过设定阈值和/或等待时间超过设定阈值,则调整对应的所述信号量的初始许可数;
将所述信号量的初始许可数更新至数据库。
4.根据权利要求3所述的方法,其特征在于,所述方法还包括:监控缓存中所述信号量的第一初始许可数,当所述第一初始许可数缓存时间达到预设缓存期限时,从数据库中获取所述信号量对应的第二初始许可数;
若所述第一初始许可数小于所述第二初始许可数,则将缓存中所述第一初始许可数调整为所述第二初始许可数;
若所述第一初始许可数大于所述第二初始许可数,则获取所述信号量的空闲许可数,若所述空闲许可数小于所述第一初始许可数与所述第二初始许可数的差值,则将缓存中所述第一初始许可数调整为所述第一初始许可数与所述空闲许可数的差值;
回收所述信号量释放的许可,直至回收的许可数等于调整后的所述第一初始许可数与所述第二初始许可数之间的差值,进而将缓存中所述第一初始许可数调整为所述第二初始许可数。
5.根据权利要求1所述的方法,其特征在于,所述从所述目标信号量获取借用许可,并将所述借用许可分派给所述待处理任务之后,还包括:生成信号量第一操作记录;
从所述待处理任务中提取第一任务数据;
所述信号量第一操作记录关联所述第一任务数据;
所述将所述待处理任务添加至线程资源中,直至任务处理完成,释放所述借用许可之后,还包括:从任务处理结果中提取第二任务数据;
生成信号量第二操作记录,所述信号量第二操作记录关联所述第二任务数据。
6.一种基于信号量的流量控制装置,其特征在于,所述装置包括:任务获取模块,用于获取待处理任务,判断所述待处理任务对应的任务类型;
信号量获取模块,用于获取所述任务类型对应的信号量;
许可借用配置获取模块,用于若所述信号量的许可已满,则获取所述信号量的许可借用配置;其中,所述许可借用配置用于描述所述信号量的借用属性和被借用属性;
借用许可模块,用于若所述许可借用配置所描述的借用属性为允许借用,则查找目标信号量,所述目标信号量的许可借用配置所描述的被借用属性为允许被借用;
任务处理模块,用于从所述目标信号量获取借用许可,并将所述借用许可分派给所述待处理任务,将所述待处理任务添加至线程资源中,直至任务处理完成,释放所述借用许可。
7.根据权利要求6所述的装置,其特征在于,所述装置还包括:阻塞许可模块,用于若所述许可借用配置所描述的借用属性为不允许借用,则将所述待处理任务标记为阻塞等待许可;
初始许可数调整模块,用于当标记为阻塞等待许可的任务数量超过设定阈值和/或等待时间超过设定阈值,则调整对应的所述信号量的初始许可数;
存储模块,用于将所述信号量的初始许可数更新至数据库。
8.根据权利要求7所述的装置,其特征在于,所述装置还包括:缓存数据更新模块,用于监控缓存中所述信号量的第一初始许可数,当所述第一初始许可数缓存时间达到预设缓存期限时,从数据库中获取所述信号量对应的第二初始许可数;若所述第一初始许可数小于所述第二初始许可数,则将缓存中所述第一初始许可数调整为所述第二初始许可数;若所述第一初始许可数大于所述第二初始许可数,则获取所述信号量的空闲许可数,若所述空闲许可数小于所述第一初始许可数与所述第二初始许可数的差值,则将缓存中所述第一初始许可数调整为所述第一初始许可数与所述空闲许可数的差值;回收所述信号量释放的许可,直至回收的许可数等于调整后的所述第一初始许可数与所述第二初始许可数之间的差值,进而将缓存中所述第一初始许可数调整为所述第二初始许可数。
9.一种计算机设备,包括存储器和处理器,所述存储器存储有计算机程序,其特征在于,所述处理器执行所述计算机程序时实现权利要求1至5中任一项所述方法的步骤。
10.一种计算机可读存储介质,其上存储有计算机程序,其特征在于,所述计算机程序被处理器执行时实现权利要求1至5中任一项所述的方法的步骤。