【技术实现步骤摘要】
基于多线程的事件队列处理方法和系统
[0001]本专利技术涉及计算机数据处理的
,特别涉及基于多线程的事件队列处理方法和系统。
技术介绍
[0002]线程是指计算机等终端的操作系统能够进行运算调度的最小单元。当计算机等终端接收到待处理事件数据后,会调用匹配的线程处理事件数据,在线程调配过程中,通常只会考虑线程是否具备处理事件数据的能力,并不会考虑线程对事件数据的处理耗时和处理效率。并且计算机等终端都是根据事件数据的接收先后顺序来调取相应的线程进行处理,即接收较早的事件数据会优先被线程进行处理。虽然上述方式能够保证对事件数据公平分配线程进行处理,但是无法保证对事件数据的处理效率,当数据量较大或者数据结构较复杂的事件数据优先被线程处理,此时线程会耗费较长时间来处理相应的事件数据,使得后续的事件数据无法及时获得线程的处理,导致事件数据不断堆积,无法为事件数据提供可靠及时的线程处理操作。
技术实现思路
[0003]针对现有技术存在的缺陷,本专利技术提供了基于多线程的事件队列处理方法和系统,其从用户端提取事件数据 ...
【技术保护点】
【技术特征摘要】
1.基于多线程的事件队列处理方法,其特征在于,其包括如下步骤:步骤S1,根据来自用户端的事件处理请求,从所述用户端的任务目录中提取相应的事件数据;根据所述事件数据的数据属性,对所有事件数据进行筛选和区分,得到若干事件数据集合;步骤S2,根据服务端的线程工作日志,确定每个线程的工作状态信息;将每个事件数据集合与所有线程进行对比,确定每个事件数据集合对应匹配的线程,将每个事件数据集合定向传送至对应匹配的线程;并对所述线程接收到的事件数据集合进行排列,得到事件数据队列;步骤S3,根据所述线程的工作状态信息,将所述事件数据队列下属的事件数据分配至所述线程进行处理,得到相应的事件数据处理结果;对所述事件数据处理结果进行验证,根据所述验证的结果,判断是否需要对相应的事件数据进行二次处理;步骤S4,对所述事件数据队列下属的事件数据的最终事件数据处理结果进行事件标识后,将所述最终事件数据处理结果返回至所述用户端;并根据所述线程在所述服务端的运行状态,调整所述服务端对所述线程的内存分配状态。2.如权利要求1所述的基于多线程的事件队列处理方法,其特征在于:在所述步骤S1中,根据来自用户端的事件处理请求,从所述用户端的任务目录中提取相应的事件数据;根据所述事件数据的数据属性,对所有事件数据进行筛选和区分,得到若干事件数据集合,包括:对来自用户端的事件处理请求进行溯源分析,确定所述用户端发起所述事件处理请求的应用程序的程序端口信息;根据所述程序端口信息,对所述用户端的后台运行任务目录进行数据查找处理,得到与所述应用程序对应的事件数据;将所述事件数据的数据类型信息与所述用户端的历史事件数据处理记录进行对比,判断所述数据类型信息是否存在于所述历史事件数据处理记录;若存在,则将所述事件数据划分到第一事件数据集合;若不存在,则将所述事件数据划分到第二事件数据集合;其中,所述第一事件数据集合和所述第二事件数据集合在所述用户端内部是相互隔离的。3.如权利要求2所述的基于多线程的事件队列处理方法,其特征在于:在所述步骤S2中,根据服务端的线程工作日志,确定每个线程的工作状态信息;将每个事件数据集合与所有线程进行对比,确定每个事件数据集合对应匹配的线程,将每个事件数据集合定向传送至对应匹配的线程;并对所述线程接收到的事件数据集合进行排列,得到事件数据队列,包括:对服务端的线程工作日志进行分析,得到所述服务端所有线程各自的工作忙闲状态信息和可支配内存空间大小信息,以此作为所述线程的工作状态信息;将所述第一事件数据集合下属的事件数据对应的数据类型信息与所述服务端的线程的历史处理数据类型进行对比,确定所述第一事件数据集合对应匹配的线程;将所述第二事件数据集合下属的事件数据对应的数据类型信息与所述服务器的线程能够处理的数据类型进行对比,确定所述第二事件数据集合对应匹配的线程;根据所述第一事件数据集合和所述第二事件数据集合各自对应匹配的线程在所述服务端的位置信息,将所述第一事件数据集合和所述第二事件数据集合分别定向传送至对应匹配的线程;并根据所述线程接收到的第一事件数据集合或第二事件数据集合下属所有的
事件数据的数据量由小到大的顺序,将所述第一事件数据集合和所述第二事件数据集合各自下属所有的事件数据分别排列形成事件数据队列。4.如权利要求3所述的基于多线程的事件队列处理方法,其特征在于:在所述步骤S3中,根据所述线程的工作状态信息,将所述事件数据队列下属的事件数据分配至所述线程进行处理,得到相应的事件数据处理结果;对所述事件数据处理结果进行验证,根据所述验证的结果,判断是否需要对相应的事件数据进行二次处理,包括:根据所述线程的工作忙闲状态信息,当所述线程处于工作繁忙状态时,不将所述第一事件数据队列和所述第二事件数据队列下属的事件数据分配至所述线程进行处理;当所述线程处于工作空闲状态时,则根据所述线程的可支配内存空间大小信息,从所述第一事件数据队列或所述第二事件数据队列选择相应的事件数据分配至所述线程进行处理,得到相应的事件数据处理结果;对所述事件数据处理结果进行数据乱码验证,得到所述事件数据处理结果的数据乱码占比;若所述数据乱码占比大于或等于预设占比阈值,则需要对相应的事件数据进行二次处理;若所述数据乱码占比小于预设占比阈值,则不需要对相应的事件数据进行二次处理。5.如权利要求4所述的基于多线程的事件队列处理方法,其特征在于:在所述步骤S4中,对所述事件数据队列下属的事件数据的最终事件数据处理结果进行事件标识后,将所述最终事件数据处理结果返回至所述用户端;并根据所述线程在所述服务端的运行状态,调整所述服务端对所述线程的内存分配状态,包括:对所述第一事件数据队列和所述第二事件数据队列各自下属的事件数据的最终事件数据处理结果进行事件名称的标识后,将所述最终事件数据处理结果打包返回至所述用户端;判断所述线程在所述服务端是否处于后台活跃状态,若是,则保持所述服务端当前对所述线程的内存分配状态不变;若否,则回收所述服务端对所述线程分配的内存。6.基于多线程的事件队列处理系统,其特征在于,包括:事件数据提取与区分模块,用于根据来自用户端的事件处理请求,从所述用户端的任务目录中提取相应的事件数据;根据所述事件...
【专利技术属性】
技术研发人员:樊骥,韩洋,钟采奕,李牧,朱谨颋,
申请(专利权)人:成都中科合迅科技有限公司,
类型:发明
国别省市:
还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。