【技术实现步骤摘要】
一种任务处理方法及装置
本申请涉及并发处理控制领域,尤其涉及一种任务处理方法及装置。
技术介绍
目前,针对多任务同时处理可采用线程池技术,在同一时刻利用不同线程处理不同任务,达到同时处理多个任务的目的。采用线程池技术,在初始化时可在线程池中创建多个线程和一个任务队列,当有多个任务需要执行时,会将多个任务推入到任务队列中,并从线程池中选择多个空闲的线程分别执行多个任务,当该多个任务执行完毕后,将执行该多个任务的多个线程的状态置为空闲,并将该多个线程再放入线程池中,以使其可以被派发执行新的任务。现有技术中,线程池中的线程数量是固定值,当任务请求数量过多时,后续请求将直接由任务的调用者直接执行,导致实际并发数会随着请求数增多而加大,导致资源被大量占用,出现资源不足的问题。因此,亟需一种任务处理方法,实现严格控制任务处理请求的量,避免出现资源出现不足的问题。
技术实现思路
本申请实施例提供一种任务处理方法及装置,用以动态控制任务请求进入线程池的数量,避免任务并发数太大,资源被大量占用的问题。第一方面,本申请实施例提供一种任务处理方法,该方法包括:客户端在第一时段内从下游任务处理节点获取第一参考任务并发数,接着确定出该时间段内的CPU的使用率和内存的使用率,进一步地确定第二参考任务并发数。客户端根据第一参考任务并发数和第二参考任务并发数将令牌的数量调整为第一数值。当客户端在第一时段后的第一时刻接收第一任务处理请求,当判断第一时刻的已用令牌的数量小于上述第一数值时,为第一任务处理请求分配第一令 ...
【技术保护点】
1.一种任务处理方法,其特征在于,包括:/n在第一时段内从下游任务处理节点获取第一参考任务并发数;/n确定在所述第一时段内的中央处理器CPU的使用率和内存的使用率中的至少一个;/n根据所述CPU的使用率和内存的使用率中的至少一个,确定第二参考任务并发数;/n根据所述第一参考任务并发数和所述第二参考任务并发数,调整用于控制任务并发数的令牌的数量为第一数值;/n在第一时刻接收第一任务处理请求,所述第一时刻发生在所述第一时段之后;/n当第一时刻已用令牌的数量小于所述第一数值时,为所述第一任务处理请求分配第一令牌,并将所述第一任务处理请求提交至线程池中处理。/n
【技术特征摘要】
1.一种任务处理方法,其特征在于,包括:
在第一时段内从下游任务处理节点获取第一参考任务并发数;
确定在所述第一时段内的中央处理器CPU的使用率和内存的使用率中的至少一个;
根据所述CPU的使用率和内存的使用率中的至少一个,确定第二参考任务并发数;
根据所述第一参考任务并发数和所述第二参考任务并发数,调整用于控制任务并发数的令牌的数量为第一数值;
在第一时刻接收第一任务处理请求,所述第一时刻发生在所述第一时段之后;
当第一时刻已用令牌的数量小于所述第一数值时,为所述第一任务处理请求分配第一令牌,并将所述第一任务处理请求提交至线程池中处理。
2.根据权利要求1所述的方法,其特征在于,还包括:
在第二时刻接收第二任务处理请求,所述第二时刻发生在所述第一时刻之后;
当第二时刻已用令牌的数量不小于所述第一数值时,将所述第二任务处理请求所在线程休眠,并提交到等待队列中等待处理。
3.根据权利要求2所述的方法,其特征在于,还包括:
在所述第一任务处理请求提交至线程池被处理完成后,将所述第一令牌从已用状态更新为可用状态,并将当前已用令牌的数量自减1;
当第三时刻已用令牌的数量小于所述第一数值时,唤醒所述等待队列中的第三任务处理请求所在的线程,所述第三时刻发生在所述第二时刻之后;
为所述第三任务处理请求所在的线程分配令牌,并将所述第三任务处理请求提交至线程池中处理。
4.根据权利要求1所述的方法,其特征在于,根据所述第一参考任务并发数和所述第二参考任务并发数,调整用于控制任务并发数的令牌的数量为第一数值,包括:
从所述第一参考任务并发数和所述第二参考任务并发数中确定最小参考任务并发数;
根据所述最小参考任务并发数,调整用于控制任务并发数的令牌的数量为第一数值。
5.根据权利要求1所述的方法,其特征在于,所述确定在所述第一时段内的CPU的使用率,包括:
获取到不同任务实例类型的时间片占用次数;所述任务实例至少包括空闲类型的任务实例;
将第一时段内各任务实例类型的时间片占用次数相加,得出第一时段内的总时间片次数;
根据所述空闲类型的任务实例的时间片占用次数和总时间片次数,计算得到所述第一时段内的CPU的使用率,所述CPU的使用率满足公式一;
其中,A为所述CPU的使用率,B为所述空闲类型的任务实例的时间片占用次数,C为所述总时间片次数。
6.根...
【专利技术属性】
技术研发人员:吴聪,
申请(专利权)人:深圳前海微众银行股份有限公司,
类型:发明
国别省市:广东;44
还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。