CN106293670B - 一种事件处理方法、设备及一种服务器 - Google Patents

一种事件处理方法、设备及一种服务器 Download PDF

Info

Publication number
CN106293670B
CN106293670B CN201510300074.1A CN201510300074A CN106293670B CN 106293670 B CN106293670 B CN 106293670B CN 201510300074 A CN201510300074 A CN 201510300074A CN 106293670 B CN106293670 B CN 106293670B
Authority
CN
China
Prior art keywords
event
processing
processing platform
module
platform corresponding
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Active
Application number
CN201510300074.1A
Other languages
English (en)
Other versions
CN106293670A (zh
Inventor
李法强
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Alibaba Group Holding Ltd
Original Assignee
Alibaba Group Holding Ltd
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Alibaba Group Holding Ltd filed Critical Alibaba Group Holding Ltd
Priority to CN201510300074.1A priority Critical patent/CN106293670B/zh
Publication of CN106293670A publication Critical patent/CN106293670A/zh
Application granted granted Critical
Publication of CN106293670B publication Critical patent/CN106293670B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Abstract

本发明公开了一种事件处理方法、设备及一种服务器,用以提高事件处理效率。该方法包括:第一个步骤对应的处理平台,按照预先在第一个步骤对应的处理平台中设置的处理算法对预先在该第一个步骤对应的处理平台中添加的事件进行处理,并将该处理产生的事件交给下一步骤对应的处理平台;第一个步骤之后最后一个步骤之前的任一步骤对应的处理平台,对从上一步骤对应的处理平台产生的事件,按照预先在该任一步骤对应的处理平台中设置的处理算法进行处理,并将该处理产生的事件交给下一步骤对应的处理平台;最后一个步骤对应的处理平台,对从上一步骤对应的处理平台产生的事件,按照预先在该最后一个步骤对应的处理平台中设置的处理算法进行处理。

Description

一种事件处理方法、设备及一种服务器
技术领域
本发明涉及计算机技术领域,尤其涉及一种事件处理方法、设备及一种服务器。
背景技术
现有技术在处理事件的过程中,需要经过多种环节,每一环节可能需要处理的业务量比较大或比较频繁,采用现有java多线程技术处理事件时,代码量较大并且逻辑及耦合比较高,需要研发工程师具有丰富的java多线程知识,并且在开发过程中需要花费大量时间编写和调试技术性代码。
因此,现有技术中的事件处理方式,处理时间长、处理速度慢,即效率不高。
发明内容
本发明实施例提供了一种事件处理方法、设备及一种服务器,用以提高事件处理效率。
本发明实施例提供的一种事件处理方法包括:
在预先对事件的处理过程进行划分得到的与每一步骤一一对应的处理平台中,
第一个步骤对应的处理平台,按照预先在第一个步骤对应的处理平台中设置的处理算法对预先在该第一个步骤对应的处理平台中添加的事件进行处理,并将该处理产生的事件交给下一步骤对应的处理平台;
第一个步骤之后最后一个步骤之前的任一步骤对应的处理平台,对从上一步骤对应的处理平台产生的事件,按照预先在该任一步骤对应的处理平台中设置的处理算法进行处理,并将该处理产生的事件交给下一步骤对应的处理平台;
最后一个步骤对应的处理平台,对从上一步骤对应的处理平台产生的事件,按照预先在该最后一个步骤对应的处理平台中设置的处理算法进行处理,并输出该处理产生的结果。
本发明实施例中,预先对事件的处理过程进行划分得到的与每一步骤一一对应的处理平台,其中,在处理事件的过程中,第一个步骤对应的处理平台,按照预先在第一个步骤对应的处理平台中设置的处理算法对预先在该第一个步骤对应的处理平台中添加的事件进行处理,并将该处理产生的事件交给下一步骤对应的处理平台;第一个步骤之后最后一个步骤之前的任一步骤对应的处理平台,对从上一步骤对应的处理平台产生的事件,按照预先在该任一步骤对应的处理平台中设置的处理算法进行处理,并将该处理产生的事件交给下一步骤对应的处理平台;最后一个步骤对应的处理平台,对从上一步骤对应的处理平台产生的事件,按照预先在该最后一个步骤对应的处理平台中设置的处理算法进行处理,并输出该处理产生的结果。即本发明实施例提供了处理事件的框架,工程师在该框架的基础上开发业务代码即可实现各种事件处理,从而可以提高处理事件的效率,避免工程师对多线程技术的过多关注,进而也节省了人力资源。
可选地,每一步骤对应的处理平台中包括:事件队列模块、事件队列的监控模块、线程池模块、事件处理器、和事件处理器的监控模块;其中,
所述事件队列模块,存储本处理平台中需要处理的事件;
所述事件队列的监控模块,监控所述事件队列模块中是否有事件,若有,则将所述事件队列模块中的事件取出交给所述事件处理器进行处理;
所述事件处理器,调用所述线程池模块中提供的线程,对所述事件队列的监控模块从所述事件队列模块中取出的事件进行处理;
所述事件处理器的监控模块,将经过所述事件处理器处理产生的事件交给下一步骤对应的处理平台或输出。
可选地,每一步骤对应的处理平台中还包括:采集模块,和调控器模块;
该方法还包括:
所述采集模块采集事件处理设备的信息;
所述调控器模块根据所述信息当确定需要调整所述线程池模块中线程的数量时,调整所述线程池模块中线程的数量。
可选地,所述信息包括事件处理设备的如下信息之一或组合:
CPU信息,内存信息,网络信息,磁盘信息。
可选地,所述事件队列模块采用如下事件队列之一或组合对事件进行存储:
无锁队列、阻塞队列、双端队列。
本发明实施例提供的一种事件处理设备,包括:预先对事件的处理过程进行划分得到的与每一步骤一一对应的处理平台,其中,
第一个步骤对应的处理平台,用于按照预先在第一个步骤对应的处理平台中设置的处理算法对预先在该第一个步骤对应的处理平台中添加的事件进行处理,并将该处理产生的事件交给下一步骤对应的处理平台;
第一个步骤之后最后一个步骤之前的任一步骤对应的处理平台,用于对从上一步骤对应的处理平台产生的事件,按照预先在该任一步骤对应的处理平台中设置的处理算法进行处理,并将该处理产生的事件交给下一步骤对应的处理平台;
最后一个步骤对应的处理平台,用于对从上一步骤对应的处理平台产生的事件,按照预先在该最后一个步骤对应的处理平台中设置的处理算法进行处理,并输出该处理产生的结果。
可选地,每一步骤对应的处理平台中包括:事件队列模块、事件队列的监控模块、线程池模块、事件处理器、和事件处理器的监控模块;其中,
所述事件队列模块,用于存储本处理平台中需要处理的事件;
所述事件队列的监控模块,用于监控所述事件队列模块中是否有事件,若有,则将所述事件队列模块中的事件取出交给所述事件处理器进行处理;
所述事件处理器,用于调用所述线程池模块中提供的线程,对所述事件队列的监控模块从所述事件队列模块中取出的事件进行处理;
所述事件处理器的监控模块,用于将经过所述事件处理器处理产生的事件交给下一步骤对应的处理平台或输出。
可选地,每一步骤对应的处理平台中还包括:采集模块,和调控器模块;其中,
所述采集模块,用于采集事件处理设备的信息;
所述调控器模块,用于根据所述信息当确定需要调整所述线程池模块中线程的数量时,调整所述线程池模块中线程的数量。
可选地,所述信息包括事件处理设备的如下信息之一或组合:
CPU信息,内存信息,网络信息,磁盘信息。
可选地,所述事件队列模块采用如下事件队列之一或组合对事件进行存储:
无锁队列、阻塞队列、双端队列。
本发明实施例提供的一种服务器,包括本发明实施例提供的任一所述的事件处理设备。
附图说明
图1为本发明实施例提供的一种事件处理设备的结构示意图;
图2为本发明实施例提供的第二种事件处理设备的结构示意图;
图3为本发明实施例提供的第三种事件处理设备的结构示意图;
图4为本发明实施例提供的一种事件处理方法的流程示意图。
具体实施方式
本发明实施例提供了一种事件处理方法、设备及一种服务器,用以提高事件处理效率。
本发明实施例提供的技术方案,对于为不具有多线程知识的或非专业多线程研发人员提供了一种框架,在该框架的基础上开发业务代码,无需关注多线程及并发知识和并发问题。
本发明实施例提供的技术方案,把一个事件请求链路上每个单独处理的部分划分为单独的处理平台(stage),每个stage负责处理独立的业务逻辑,即预先把做一件事情分成具体的若干步骤,每一步骤与一stage一一对应,每一stage负责完成自己平台的事件,即该stage对应的步骤中涉及的事件,可以理解为整个大的事件下的子事件。在具体的实际应用中,针对整个事件,即整个链路,可以按照业务需求预先设置一个或多个stage,参见图1所示,例如,预先将需要处理的事件划为五个步骤,每一步骤对应一stage,其中,stage一对应第一个步骤,stage二对应第二个步骤,stage三和stage四分别对应第二步骤后的两个并列的步骤,stage五对应这两个并列执行的步骤的后续的最后一个步骤。
在上述图1中所示的事件处理设备的架构下,例如:生产铅笔,可以把制作铅笔的事件处理设备分为以下五个stage:
stage一:设计铅笔图纸;
stage二:铅笔图纸可行性分析;
stage三:按照铅笔要求生产笔芯;
stage四:按照铅笔要求生产铅笔壳;
stage五:根据stage三和stage四生产的部件组装铅笔,组装好铅笔整个铅笔的制作就完成了。
其中每一stage负责处理该stage对应的步骤,具体采用的算法可以根据实际业务需求而定,即不同的业务需求对应不同的事件处理过程,因此,当多种业务的事件处理过程中,具有相同的处理步骤时,就可以将之前已经划分出的处理步骤所对应的stage直接应用到另一业务对应的事件处理过程中,进行灵活组合,无需每次都要针对不同的业务需求,重新设计相应的事件处理过程中所需要的各种算法、代码等。因此,可以很大程度地提高事件处理效率,节约人力、物力。
因此,参见图2,本发明实施例提供的一种事件处理设备,包括:预先对事件的处理过程进行划分得到的与每一步骤一一对应的处理平台,其中,
第一个步骤对应的处理平台201,用于按照预先在第一个步骤对应的处理平台中设置的处理算法对预先在该第一个步骤对应的处理平台中添加的事件进行处理,并将该处理产生的事件交给下一步骤对应的处理平台;
第一个步骤之后最后一个步骤之前的任一步骤对应的处理平台202,也可以简称为中间处理平台,用于对从上一步骤对应的处理平台产生的事件,按照预先在该任一步骤对应的处理平台中设置的处理算法进行处理,并将该处理产生的事件交给下一步骤对应的处理平台;
最后一个步骤对应的处理平台203,用于对从上一步骤对应的处理平台产生的事件,按照预先在该最后一个步骤对应的处理平台中设置的处理算法进行处理,并输出该处理产生的结果。
需要说明的是,本发明实施例中提供的事件处理设备,具体包括的处理平台的数量不进行限制,具体可以根据实际需要而定,即有可能只有一个处理平台,也有可能只有两个处理平台,或者更多个处理平台,当存在多个中间处理平台时,每一中间处理平台相互之间的连接关系,以及与第一个步骤对应的处理平台、最后一个步骤对应的处理平台之间的连接关系,取决于实际需要,即根据实际业务需求对整个事件划分的步骤之间的相互关系而定,本发明实施例不进行限定。
可选地,参见图3,可以假设对于当前步骤对应的处理平台402,存在上一步骤对应的处理平台401和下一步骤对应的处理平台403。其中,上一步骤对应的处理平台401可以有一个或多个,下一步骤对应的处理平台403也可以有一个或多个。
每一步骤对应的处理平台中包括:事件队列模块21、事件队列的监控模块22、线程池模块24、事件处理器23、和事件处理器的监控模块25;其中,
所述事件队列模块,用于存储本处理平台中需要处理的事件,该事件有可能是预设的(若当前步骤对应的处理平台402是第一个步骤对应的处理平台),也可以是经上一步骤对应的处理平台401处理后得到的事件;
所述事件队列的监控模块(EventQueueListenerThread),具体为事件队列模块的监控线程,用于监控所述事件队列模块中是否有事件,若有,则将所述事件队列模块中的事件取出交给所述事件处理器进行处理;
所述事件处理器,用于调用所述线程池模块中提供的线程,对所述事件队列的监控模块从所述事件队列模块中取出的事件进行处理;
所述事件处理器的监控模块(EventHandlerListenerThread),为事件处理器的监控线程,用于将经过所述事件处理器处理产生的事件交给下一步骤对应的处理平台403或输出(若当前步骤对应的处理平台402是最后一个步骤对应的处理平台)。
可选地,每一步骤对应的处理平台中还包括:采集模块26,和调控器模块27;其中,
所述采集模块,用于采集事件处理设备的信息;
所述调控器模块,用于根据所述信息当确定需要调整所述线程池模块中线程的数量时,调整所述线程池模块中线程的数量。
可选地,所述信息包括事件处理设备的如下信息之一或组合:
CPU信息,内存信息,网络信息,磁盘信息。
可选地,所述事件队列模块采用如下事件队列之一或组合对事件进行存储:
无锁队列(UnlockQueue)、阻塞队列(Fine grit queue)、双端队列(edque)。这些队列都是java提供的数据结构。
下面给出以上架构中各个模块的具体的解释说明。
事件队列模块(Queue):主要可以采用无锁队列,无锁队列主要采用环形数组,其下有2个游标,生产者游标和消费者游标。当生产者游标减去消费者游标小于预设的最大容量时,生产者才可以生产事件;同理,当生产者游标减去消费者游标大于0时,消费者才可消费事件。无锁队列主要采用环形数组来存储数据,其中所述的最大容量,即环形数组可容纳的最大数据个数,本发明实施例中使用无锁原子Long类型作为生产者游标和消费者游标,当生产者游标减消费者游标等于最大容量时,代表无锁队列容量已满不能再添加数据,同理当生产者游标减消费者游标等于零时,代表无锁队列容量为空,消费者不能再消费数据。
其中的环形数组,是计算机数据结构的一种,环形数组的最大长度节点的下一个节点为数据的起始节点。
对于本发明实施例提供的框架中,生产者游标仅指事件生产者生产事件的个数,消费者游标仅指事件消费者消费事件的个数。所述的最大容量,即无锁队列能够接收事件的最多个数,即:接受事件的最大个数。
所述的生产事件,是生产者根据自己的业务逻辑产生对应的事件,比如:生产铅笔芯,负责生产铅笔芯的处理平台就是一个生产者,按照铅笔设计的要求生产出的铅笔芯就是事件。所述的消费事件,是指根据生产者生产的事件特性,从无锁队列中把事件取出执行相应的业务逻辑(具体的事件特性以及业务逻辑都是可以预先设置好的),可以理解为当前步骤对应的处理平台获取上一步骤对应的处理平台处理得到的事件,并对该事件进行处理,将处理得到的事件输出或发给下一步骤对应的处理平台。
线程池模块(Thread Pool):即主要使用java语言提供的固定线程池,实现线程的不定期回收线程,具体地,JVM会根据线程池中线程特性,比如某个线程已经执行完毕,此时JVM会把该线程规划为初始化状态,使用该线程能够继续完成后续工作。
事件处理器(EventHandler):主要是业务开发人员编写业务代码的地方,业务开发者继承事件处理器类,实现相应的方法,具体地,本发明实施例提供的框架(即事件处理设备)开发了事件处理器接口,接口中定义了处理器(handler)方法,具体的事件处理器继承该接口实现handler方法即可。
采集模块:负责采集事件处理设备的软、硬件信息,比如cpu信息、网络信息、接口信息,以便提供给调控器模块。
调控器模块(Controler),负责根据采集模块采集的事件处理设备的软、硬件信息,判断是否对线程池大小做出调整,例如,调控器模块会根据采集到的cpu信息,当确定cpu使用率偏高时降低线程池大小,反之增加线程池线程大小;或根据采集到的网络信息当确定网络使用率偏高时降低线程池大小,反之增加线程池线程大小。
另外,本发明实施例提供了一种服务器,包括本发明实施例提供的任一所述的事件处理设备。
相应地,参见图4,本发明实施例提供的一种事件处理方法包括:
在预先对事件的处理过程进行划分得到的与每一步骤一一对应的处理平台中:
S301、第一个步骤对应的处理平台,按照预先在第一个步骤对应的处理平台中设置的处理算法对预先在该第一个步骤对应的处理平台中添加的事件进行处理,并将该处理产生的事件交给下一步骤对应的处理平台;
S302、第一个步骤之后最后一个步骤之前的任一步骤对应的处理平台,对从上一步骤对应的处理平台产生的事件,按照预先在该任一步骤对应的处理平台中设置的处理算法进行处理,并将该处理产生的事件交给下一步骤对应的处理平台;
需要说明的是,所述上一步骤对应的处理平台,可以是上一个步骤对应的处理平台,也可以是上上个步骤对应的处理平台,即是指当前步骤之前的步骤对应的处理平台,而不限于上一个步骤对应的处理平台。同理,所述下一步骤对应的处理平台可以是下一个步骤对应的处理平台,也可以是下下个步骤对应的处理平台,即是指当前步骤之后的步骤对应的处理平台,而不限于下一个步骤对应的处理平台。
S303、最后一个步骤对应的处理平台,对从上一步骤对应的处理平台产生的事件,按照预先在该最后一个步骤对应的处理平台中设置的处理算法进行处理,并输出该处理产生的结果。
可选地,每一步骤对应的处理平台中包括:事件队列模块、事件队列的监控模块、线程池模块、事件处理器、和事件处理器的监控模块;其中,
所述事件队列模块,存储本处理平台中需要处理的事件;
所述事件队列的监控模块,监控所述事件队列模块中是否有事件,若有,则将所述事件队列模块中的事件取出交给所述事件处理器进行处理;
所述事件处理器,调用所述线程池模块中提供的线程,对所述事件队列的监控模块从所述事件队列模块中取出的事件进行处理;
所述事件处理器的监控模块,将经过所述事件处理器处理产生的事件交给下一步骤对应的处理平台或输出。
可选地,每一步骤对应的处理平台中还包括:采集模块,和调控器模块;
该方法还包括:
所述采集模块采集事件处理设备的信息;
所述调控器模块根据所述信息当确定需要调整所述线程池模块中线程的数量时,调整所述线程池模块中线程的数量。
可选地,所述信息包括事件处理设备的如下信息之一或组合:
CPU信息,内存信息,网络信息,磁盘信息。
可选地,所述事件队列模块采用如下事件队列之一或组合对事件进行存储:
无锁队列、阻塞队列、双端队列。
综上所述,本发明实施例中,预先对事件的处理过程进行划分得到的与每一步骤一一对应的处理平台,其中,在处理事件的过程中,第一个步骤对应的处理平台,按照预先在第一个步骤对应的处理平台中设置的处理算法对预先在该第一个步骤对应的处理平台中添加的事件进行处理,并将该处理产生的事件交给下一步骤对应的处理平台;第一个步骤之后最后一个步骤之前的任一步骤对应的处理平台,对从上一步骤对应的处理平台产生的事件,按照预先在该任一步骤对应的处理平台中设置的处理算法进行处理,并将该处理产生的事件交给下一步骤对应的处理平台;最后一个步骤对应的处理平台,对从上一步骤对应的处理平台产生的事件,按照预先在该最后一个步骤对应的处理平台中设置的处理算法进行处理,并输出该处理产生的结果。即本发明实施例提供了处理事件的框架,工程师在该框架的基础上开发业务代码即可实现各种事件处理,从而可以提高处理事件的效率,避免工程师对多线程技术的过多关注,进而也节省了人力资源。
本领域内的技术人员应明白,本发明的实施例可提供为方法、系统、或计算机程序产品。因此,本发明可采用完全硬件实施例、完全软件实施例、或结合软件和硬件方面的实施例的形式。而且,本发明可采用在一个或多个其中包含有计算机可用程序代码的计算机可用存储介质(包括但不限于磁盘存储器和光学存储器等)上实施的计算机程序产品的形式。
本发明是参照根据本发明实施例的方法、设备(系统)、和计算机程序产品的流程图和/或方框图来描述的。应理解可由计算机程序指令实现流程图和/或方框图中的每一流程和/或方框、以及流程图和/或方框图中的流程和/或方框的结合。可提供这些计算机程序指令到通用计算机、专用计算机、嵌入式处理机或其他可编程数据处理设备的处理器以产生一个机器,使得通过计算机或其他可编程数据处理设备的处理器执行的指令产生用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的装置。
这些计算机程序指令也可存储在能引导计算机或其他可编程数据处理设备以特定方式工作的计算机可读存储器中,使得存储在该计算机可读存储器中的指令产生包括指令装置的制造品,该指令装置实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能。
这些计算机程序指令也可装载到计算机或其他可编程数据处理设备上,使得在计算机或其他可编程设备上执行一系列操作步骤以产生计算机实现的处理,从而在计算机或其他可编程设备上执行的指令提供用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的步骤。
显然,本领域的技术人员可以对本发明进行各种改动和变型而不脱离本发明的精神和范围。这样,倘若本发明的这些修改和变型属于本发明权利要求及其等同技术的范围之内,则本发明也意图包含这些改动和变型在内。

Claims (9)

1.一种事件处理方法,其特征在于,该方法包括:
在预先对事件的处理过程进行划分得到的与每一步骤一一对应的处理平台中;其中,每一步骤对应的处理平台不同,每一步骤对应的处理平台中包括:事件队列模块、事件队列的监控模块、线程池模块、事件处理器、和事件处理器的监控模块;其中,所述事件队列模块,存储本处理平台中需要处理的事件;所述事件队列的监控模块,监控所述事件队列模块中是否有事件,若有,则将所述事件队列模块中的事件取出交给所述事件处理器进行处理;所述事件处理器,调用所述线程池模块中提供的线程,对所述事件队列的监控模块从所述事件队列模块中取出的事件进行处理;所述事件处理器的监控模块,将经过所述事件处理器处理产生的事件交给下一步骤对应的处理平台或输出;
第一个步骤对应的处理平台,按照预先在第一个步骤对应的处理平台中设置的处理算法对预先在该第一个步骤对应的处理平台中添加的事件进行处理,并将该处理产生的事件交给下一步骤对应的处理平台;
第一个步骤之后最后一个步骤之前的任一步骤对应的处理平台,对从上一步骤对应的处理平台产生的事件,按照预先在该任一步骤对应的处理平台中设置的处理算法进行处理,并将该处理产生的事件交给下一步骤对应的处理平台;
最后一个步骤对应的处理平台,对从上一步骤对应的处理平台产生的事件,按照预先在该最后一个步骤对应的处理平台中设置的处理算法进行处理,并输出该处理产生的结果。
2.根据权利要求1所述的方法,其特征在于,每一步骤对应的处理平台中还包括:采集模块和调控器模块;
该方法还包括:
所述采集模块采集事件处理设备的信息;
所述调控器模块根据所述信息当确定需要调整所述线程池模块中线程的数量时,调整所述线程池模块中线程的数量。
3.根据权利要求2所述的方法,其特征在于,所述信息包括事件处理设备的如下信息之一或组合:
CPU信息,内存信息,网络信息,磁盘信息。
4.根据权利要求1、2或3所述的方法,其特征在于,所述事件队列模块采用如下事件队列之一或组合对事件进行存储:
无锁队列、阻塞队列、双端队列。
5.一种事件处理设备,其特征在于,该设备包括:预先对事件的处理过程进行划分得到的与每一步骤一一对应的处理平台,其中,每一步骤对应的处理平台不同,每一步骤对应的处理平台中包括:事件队列模块、事件队列的监控模块、线程池模块、事件处理器、和事件处理器的监控模块;其中,所述事件队列模块,存储本处理平台中需要处理的事件;所述事件队列的监控模块,监控所述事件队列模块中是否有事件,若有,则将所述事件队列模块中的事件取出交给所述事件处理器进行处理;所述事件处理器,调用所述线程池模块中提供的线程,对所述事件队列的监控模块从所述事件队列模块中取出的事件进行处理;所述事件处理器的监控模块,将经过所述事件处理器处理产生的事件交给下一步骤对应的处理平台或输出;
第一个步骤对应的处理平台,用于按照预先在第一个步骤对应的处理平台中设置的处理算法对预先在该第一个步骤对应的处理平台中添加的事件进行处理,并将该处理产生的事件交给下一步骤对应的处理平台;
第一个步骤之后最后一个步骤之前的任一步骤对应的处理平台,用于对从上一步骤对应的处理平台产生的事件,按照预先在该任一步骤对应的处理平台中设置的处理算法进行处理,并将该处理产生的事件交给下一步骤对应的处理平台;
最后一个步骤对应的处理平台,用于对从上一步骤对应的处理平台产生的事件,按照预先在该最后一个步骤对应的处理平台中设置的处理算法进行处理,并输出该处理产生的结果。
6.根据权利要求5所述的设备,其特征在于,每一步骤对应的处理平台中还包括:采集模块,和调控器模块;其中,
所述采集模块,用于采集事件处理设备的信息;
所述调控器模块,用于根据所述信息当确定需要调整所述线程池模块中线程的数量时,调整所述线程池模块中线程的数量。
7.根据权利要求6所述的设备,其特征在于,所述信息包括事件处理设备的如下信息之一或组合:
CPU信息,内存信息,网络信息,磁盘信息。
8.根据权利要求5、6或7所述的设备,其特征在于,所述事件队列模块采用如下事件队列之一或组合对事件进行存储:
无锁队列、阻塞队列、双端队列。
9.一种服务器,其特征在于,该服务器包括权利要求5-8任一权项所述的事件处理设备。
CN201510300074.1A 2015-06-03 2015-06-03 一种事件处理方法、设备及一种服务器 Active CN106293670B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN201510300074.1A CN106293670B (zh) 2015-06-03 2015-06-03 一种事件处理方法、设备及一种服务器

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN201510300074.1A CN106293670B (zh) 2015-06-03 2015-06-03 一种事件处理方法、设备及一种服务器

Publications (2)

Publication Number Publication Date
CN106293670A CN106293670A (zh) 2017-01-04
CN106293670B true CN106293670B (zh) 2020-03-20

Family

ID=57656514

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201510300074.1A Active CN106293670B (zh) 2015-06-03 2015-06-03 一种事件处理方法、设备及一种服务器

Country Status (1)

Country Link
CN (1) CN106293670B (zh)

Families Citing this family (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN108733496B (zh) * 2017-04-24 2023-07-14 腾讯科技(上海)有限公司 事件处理方法和装置
CN108874550A (zh) * 2018-07-18 2018-11-23 郑州云海信息技术有限公司 一种调整线程池的方法、装置、存储介质和计算机设备
CN112540852A (zh) * 2020-12-21 2021-03-23 武汉光庭信息技术股份有限公司 一种地图数据下载方法、系统、终端设备及存储介质

Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN101373474A (zh) * 2008-09-02 2009-02-25 北京开拓天际信息技术有限公司 海量数据实时处理架构及用于该架构的实时随需处理平台
CN101639803A (zh) * 2008-07-30 2010-02-03 株式会社日立制作所 多线程应用系统的异常处理方法和异常处理装置
CN102760082A (zh) * 2011-04-29 2012-10-31 腾讯科技(深圳)有限公司 一种任务管理方法和移动终端
CN102917216A (zh) * 2012-10-16 2013-02-06 深圳市融创天下科技股份有限公司 一种运动搜索的方法、系统和终端设备
CN104598631A (zh) * 2015-02-05 2015-05-06 北京航空航天大学 分布式数据处理平台

Family Cites Families (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6918114B2 (en) * 2001-04-05 2005-07-12 International Business Machines Corporation Method, apparatus, and program to keep a JVM running during the shutdown process of a Java based server executing daemon threads

Patent Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN101639803A (zh) * 2008-07-30 2010-02-03 株式会社日立制作所 多线程应用系统的异常处理方法和异常处理装置
CN101373474A (zh) * 2008-09-02 2009-02-25 北京开拓天际信息技术有限公司 海量数据实时处理架构及用于该架构的实时随需处理平台
CN102760082A (zh) * 2011-04-29 2012-10-31 腾讯科技(深圳)有限公司 一种任务管理方法和移动终端
CN102917216A (zh) * 2012-10-16 2013-02-06 深圳市融创天下科技股份有限公司 一种运动搜索的方法、系统和终端设备
CN104598631A (zh) * 2015-02-05 2015-05-06 北京航空航天大学 分布式数据处理平台

Also Published As

Publication number Publication date
CN106293670A (zh) 2017-01-04

Similar Documents

Publication Publication Date Title
CN106802826B (zh) 一种基于线程池的业务处理方法及装置
EP3129880B1 (en) Method and device for augmenting and releasing capacity of computing resources in real-time stream computing system
CN103605568B (zh) 一种多线程管理方法及装置
WO2016078008A1 (zh) 调度数据流任务的方法和装置
US20130014124A1 (en) Reducing cross queue synchronization on systems with low memory latency across distributed processing nodes
US10157155B2 (en) Operating system-managed interrupt steering in multiprocessor systems
CN105808328A (zh) 任务调度的方法、装置和系统
CN103365718A (zh) 一种线程调度方法、线程调度装置及多核处理器系统
US20170337241A1 (en) Reconfigurable distributed processing
CN106293670B (zh) 一种事件处理方法、设备及一种服务器
CN106528065B (zh) 一种线程获取方法及设备
CN109840149B (zh) 任务调度方法、装置、设备及存储介质
CN109614227A (zh) 任务资源调配方法、装置、电子设备及计算机可读介质
CN110287018A (zh) 批量任务编排方法及装置
US9753769B2 (en) Apparatus and method for sharing function logic between functional units, and reconfigurable processor thereof
CN104281636A (zh) 海量报表数据并发分布式处理方法
CN103959276A (zh) 基于用户意图和进程独立性的知识的资源分配优先化
CN104298507A (zh) 资源的处理方法及装置
CN106502842A (zh) 数据恢复方法及系统
CN112486638A (zh) 用于执行处理任务的方法、装置、设备和存储介质
CN114942833A (zh) 定时任务资源动态调度方法及相关装置
CN108121605A (zh) 一种基于yarn的cgroup内存控制优化方法及系统
CN115599507A (zh) 数据处理方法、执行工作站、电子设备和存储介质
CN114327854A (zh) 利用协程处理业务请求的方法及相关设备
CN104391929A (zh) 一种etl中数据流的传递方法

Legal Events

Date Code Title Description
C06 Publication
PB01 Publication
C10 Entry into substantive examination
SE01 Entry into force of request for substantive examination
GR01 Patent grant
GR01 Patent grant