本发明涉及数据处理,具体涉及一种客户端请求的处理方法、计算设备及存储介质。
背景技术:
1、多线程并行技术是指一个程序中同时运行多个线程,每个线程都可以独立运行,并同时访问共享资源。多线程并发被广泛应用于提高系统的性能和响应能力,有效管理多线程对于确保系统的稳定性和资源利用率至关重要。
2、对于客户端同时存在普通访问请求和一次性批量任务请求处理审批任务的情况,传统的串行处理方式可能导致系统处理效率低,客户满意度低,而普通访问请求又不需要系统具有并行处理能力。如果在服务内主线程直接开多线程,需要增加线程池核心线程数以及最大线程数,这样针对不需要并行处理的请求,会造成资源的浪费。
技术实现思路
1、为了克服现有技术的不足,本方案提出了一种客户端请求的处理方法,将普通访问请求和批量任务请求的任务处理线程隔离,通过并发多线程处理批量请求,能够提高系统并发性能,并隔离其他不需要并发能力的线程,达到资源最大利用率。
2、根据本发明的第一方面,提供一种客户端请求的处理方法,包括:接收客户端请求,判断客户端请求是批量任务请求还是普通访问请求;对批量任务请求分配批量线程池,通过批量线程池中的线程并行处理批量任务;对普通访问请求分配通用线程池,通过通用线程池中的线程按照任务队列逐一处理任务;将批量线程池和通用线程池的任务执行结果返回至客户端。
3、本方案可以根据客户端请求灵活进行任务分配和线程管理,能够满足不同的业务需求。
4、可选地,在本发明提供的客户端请求的处理方法中,通用线程池的最大线程数、核心线程数和任务队列容量分别小于批量线程池的最大线程数、核心线程数和任务队列容量。
5、可选地,在本发明提供的客户端请求的处理方法中,根据客户端请求的请求参数、请求频率或接口文档判断客户端请求是批量任务请求还是普通访问请求。
6、可选地,在本发明提供的客户端请求的处理方法中,判断当前是否存在批量线程池,如果不存在则通过线程池管理器创建一个批量线程池,如果存在则使用当前的批量线程池;
7、根据任务并发数将任务分配给批量线程池中的线程;多个线程并行处理所分配的任务,等待所有任务完成后返回一个包含所有任务的第一future对象列表;循环遍历第一future对象列表,从每个future对象中获取任务的执行结果。
8、可选地,在本发明提供的客户端请求的处理方法中,根据批量任务请求中的任务并发数定义批量信号量;根据批量信号量大小将任务均匀分配给批量线程池中的每个线程。
9、可选地,在本发明提供的客户端请求的处理方法中,如果批量线程池使用完成,则转至通用线程池执行任务。
10、可选地,在本发明提供的客户端请求的处理方法中,按照任务队列为普通访问请求中的每个任务分配一个线程执行;等待所有任务完成后返回一个包含所有任务的第二future对象列表;循环遍历第二future对象列表,从每个future对象中获取任务的执行结果。
11、可选地,在本发明提供的客户端请求的处理方法中,通过线程管理器从批量线程池的第一future对象列表和通用线程池的第二future对象列表中分别获取任务执行结果返回至客户端。
12、根据本发明的第二方面,提供一种计算设备,包括存储器、处理器以及储存在存储器上并可在处理器上运行的计算机程序,处理器执行如第一方面中的一种客户端请求的处理方法。
13、根据本发明的第三方面,提供一种计算机可读存储介质,包括存储有能够被处理器加载并执行如第一方面的一种客户端请求的处理方法的计算机程序。
14、通过本发明提供的客户端请求的处理方法,根据客户端请求的不同分配相应的线程池进行任务处理,能够将普通访问请求和批量任务请求的任务处理线程隔离,可以在提高任务并发处理效率的同时,减少资源浪费和人为错误,提高处理准确性,满足不同的业务需求。
15、上述说明仅是本发明技术方案的概述,为了能够更清楚了解本发明的技术手段,而可依照说明书的内容予以实施,并且为了让本发明的上述和其它目的、特征和优点能够更明显易懂,以下特举本发明的具体实施方式。
1.一种客户端请求的处理方法,其特征在于,包括:
2.根据权利要求1所述的客户端请求的处理方法,其特征在于,所述通用线程池的最大线程数、核心线程数和任务队列容量分别小于批量线程池的最大线程数、核心线程数和任务队列容量。
3.根据权利要求1所述的客户端请求的处理方法,其特征在于,所述判断所述客户端请求是批量任务请求还是普通访问请求的步骤包括:
4.根据权利要求1所述的客户端请求的处理方法,其特征在于,所述对批量任务请求分配批量线程池,通过批量线程池中的线程并行处理批量任务的步骤包括:
5.根据权利要求4所述的客户端请求的处理方法,其特征在于,所述根据任务并发数将任务分配给线程的步骤包括:
6.根据权利要求4所述的客户端请求的处理方法,其特征在于,所述对批量任务请求分配批量线程池,通过批量线程池中的线程并行处理批量任务的步骤还包括:
7.根据权利要求4所述的客户端请求的处理方法,其特征在于,所述对普通访问请求分配通用线程池,通过通用线程池中的线程按照任务队列逐一处理任务的步骤包括:
8.根据权利要求7所述的客户端请求的处理方法,其特征在于,所述将批量线程池和通用线程池的任务执行结果返回至客户端的步骤包括:
9.一种计算设备,包括:
10.一种存储有程序指令的可读存储介质,当所述程序指令被计算设备读取并执行时,使得所述计算设备执行如权利要求1-8任意一项中所述的客户端请求的处理方法。