CN109376054A - 一种数据分发的方法、装置、终端设备及存储介质 - Google Patents

一种数据分发的方法、装置、终端设备及存储介质 Download PDF

Info

Publication number
CN109376054A
CN109376054A CN201811113217.8A CN201811113217A CN109376054A CN 109376054 A CN109376054 A CN 109376054A CN 201811113217 A CN201811113217 A CN 201811113217A CN 109376054 A CN109376054 A CN 109376054A
Authority
CN
China
Prior art keywords
listener
data
priority
event
processing
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.)
Granted
Application number
CN201811113217.8A
Other languages
English (en)
Other versions
CN109376054B (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.)
Guangzhou Huya Information Technology Co Ltd
Original Assignee
Guangzhou Huya Information Technology Co 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 Guangzhou Huya Information Technology Co Ltd filed Critical Guangzhou Huya Information Technology Co Ltd
Priority to CN201811113217.8A priority Critical patent/CN109376054B/zh
Publication of CN109376054A publication Critical patent/CN109376054A/zh
Application granted granted Critical
Publication of CN109376054B publication Critical patent/CN109376054B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/30Monitoring
    • G06F11/3003Monitoring arrangements specially adapted to the computing system or computing system component being monitored
    • G06F11/302Monitoring arrangements specially adapted to the computing system or computing system component being monitored where the computing system component is a software system

Landscapes

  • Engineering & Computer Science (AREA)
  • Computing Systems (AREA)
  • Physics & Mathematics (AREA)
  • Theoretical Computer Science (AREA)
  • Mathematical Physics (AREA)
  • Quality & Reliability (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Information Transfer Between Computers (AREA)

Abstract

本申请提供一种数据分发的方法、装置、终端设备及存储介质。当数据更新触发事件时,基于预设优先级以及监听者预先注册的监听数据的类型将更新后的数据发送给优先级高的监听者,以使所述优先级高的监听者根据所述更新后的数据处理所述事件并生成处理参数;接收所述优先级高的监听者回传的处理参数;判断所述处理参数中是否包括终止事件的指示;如果不包括,则将所述更新后的数据和所述处理参数发送给优先级低的监听者;如果包括,则终止所述事件。本方案的事件响应处理是基于数据驱动的,有利于数据在各监听者间的传递,监听者之间可以互相传递处理参数,了解其他监听者的处理结果。

Description

一种数据分发的方法、装置、终端设备及存储介质
技术领域
本申请涉及软件后台技术领域,尤其涉及一种数据分发的方法、装置、终端设备及存储介质。
背景技术
目前,图形界面中的各事件的响应大多都是基于事件的,例如,一个事件源注册了多个监听者,当所述事件源的事件触发后,事件分发器会将该事件分发给各个监听者,监听者分别依据自己的职责对事件做出相应处理。在这种模式中,监听者只会响应事件做出自己该做的处理,不会理会其他的监听者,但是,在某些情况下,某个监听者可能需要依赖上一个监听者的处理结果去决定如何处理事件,比如,监听者A处理事件S后,监听者B需要依赖其处理结果去处理事件S,这时候需要监听者A再向监听者B发出一个新的事件S1,将处理结果告诉监听者B,这样监听者B需要同时监听和处理事件S和事件S1两个事件。这种模式中,监听者之间的信息传递需要分成多个事件去传递,非常繁琐。
发明内容
有鉴于此,本申请提供一种数据分发的方法、装置、终端设备以及存储介质。
首先,本申请提供一种数据分发的方法,所述方法包括:
当数据更新触发事件时,基于预设优先级以及监听者预先注册的监听数据的类型将更新后的数据发送给优先级高的监听者,以使所述优先级高的监听者根据所述更新后的数据处理所述事件并生成处理参数;
接收所述优先级高的监听者回传的处理参数;
判断所述处理参数中是否包括终止事件的指示;
如果不包括,则将所述更新后的数据和所述处理参数发送给优先级低的监听者;
如果包括,则终止所述事件。
可选地,所述处理参数包括:处理后的数据、处理状态和/或自定义参数;其中,所述自定义参数包括指示终止事件的参数。
可选地,所述优先级高的监听者根据所述更新后的数据处理所述事件并生成处理参数包括:
所述优先级高的监听者设置执行线程;
通过所述执行线程处理所述事件并生成所述处理参数。
可选地,所述监听者预先注册的监听数据的类型与监听事件绑定,基于数据类型所述监听者被分类存储于不同事件的监听池中,基于预设优先级所述监听者被按照优先级高低的顺序排序;
当数据更新触发事件时,将所述更新后的数据发送给优先级高的监听者具体包括:
根据所述数据类型查找到所述数据的监听池;
从所述监听池中找到所述优先级高的监听者;
将所述更新后的数据发送给所述优先级高的监听者。
可选地,所述监听者的优先级根据监听者处理事件的顺序设置,监听者处理事件的顺序越前,监听者优先级越高。
其次,本申请提供了一种数据分发的装置,所述装置包括:
发送模块,用于当数据更新触发事件时,基于预设优先级以及监听者预先注册的监听数据的类型将更新后的数据发送给优先级高的监听者,以使所述优先级高的监听者根据所述更新后的数据处理所述事件并生成处理参数;以及用于在判断所述处理参数中不包括终止事件的指示后,将所述更新后的数据和所述处理参数发送给优先级低的监听者;
接收模块,用于接收所述优先级高的监听者回传的处理参数;
判断模块,用于判断所述处理参数中是否包括终止事件的指示;
终止模块,用于在判断所述处理参数中包括终止事件的指示后,终止所述事件。
可选地,所述处理参数包括:处理后的数据、处理状态和/或自定义参数;其中,所述自定义参数包括指示终止事件的参数。
可选地,所述监听者的监听事件为预先注册,所述监听事件与被监听数据的类型绑定,基于数据的类型所述监听者被分类存储于不同的监听池中,基于预设优先级所述监听者被按照优先级高低顺序排序;
当数据更新触发事件时,将所述更新后的数据发送给优先级高的监听者具体包括:
根据所述数据的类型查找到所述数据的监听池;
从所述监听池中找到所述优先级高的监听者;
将所述更新后的数据发送给所述优先级高的监听者。
另外,本申请还提供了一种终端设备,所述终端设备包括:
存储器,用于存储可执行的计算机程序指令;
处理器,用于执行所述计算机程序指令以实现以下方法步骤:
当数据更新触发事件时,基于预设优先级以及监听者预先注册的监听数据的类型将更新后的数据发送给优先级高的监听者,以使所述优先级高的监听者根据所述更新后的数据处理所述事件并生成处理参数;
接收所述优先级高的监听者回传的处理参数;
判断所述处理参数中是否包括终止事件的指示;
如果不包括,则将所述更新后的数据和所述处理参数发送给优先级低的监听者;
如果包括,则终止所述事件。
进一步地,本申请还提供了一种计算机可读存储介质,所述计算机可读存储介质上存储有计算机程序,所述计算机程序被处理器执行时实现以下方法步骤:
当数据更新触发事件时,基于预设优先级以及监听者预先注册的监听数据的类型将更新后的数据发送给优先级高的监听者,以使所述优先级高的监听者根据所述更新后的数据处理所述事件并生成处理参数;
接收所述优先级高的监听者回传的处理参数;
判断所述处理参数中是否包括终止事件的指示;
如果不包括,则将所述更新后的数据和所述处理参数发送给优先级低的监听者;
如果包括,则终止所述事件。
有益效果:当数据更新触发事件时,基于预设优先级以及监听者预先注册的监听数据的类型将更新后的数据发送给优先级高的监听者,以使所述优先级高的监听者根据所述更新后的数据处理所述事件并生成处理参数;接收所述优先级高的监听者回传的处理参数;判断所述处理参数中是否包括终止事件的指示;如果不包括,则将所述更新后的数据和所述处理参数发送给优先级低的监听者;如果包括,则终止所述事件。本方案的事件响应处理是基于数据驱动的,有利于数据在各监听者间的传递,监听者之间可以互相传递处理参数,了解其他监听者的处理结果,且数据传递不需借助新的事件,方便快捷。
附图说明
图1是本申请一示例性实施例示出的一种基于事件的监听者之间信息传递示意图;
图2是本申请一示例性实施例示出的一种数据分发的方法流程图;
图3是本申请一示例性实施例示出的一种数据分发的方法示意图;
图4是本申请一示例性实施例示出的一种数据分发的方法流程图;
图5是本申请一示例性实施例示出的一种数据分发的方法示意图;
图6是本申请一示例性实施例示出的一种数据分发的装置的结构逻辑框图;
图7是本申请一示例性实施例示出的一种终端设备的结构逻辑框图。
具体实施方式
这里将详细地对示例性实施例进行说明,其示例表示在附图中。下面的描述涉及附图时,除非另有表示,不同附图中的相同数字表示相同或相似的要素。以下示例性实施例中所描述的实施方式并不代表与本申请相一致的所有实施方式。相反,它们仅是与如所附权利要求书中所详述的、本申请的一些方面相一致的装置和方法的例子。
在本申请使用的术语是仅仅出于描述特定实施例的目的,而非旨在限制本申请。在本申请和所附权利要求书中所使用的单数形式的“一种”、“所述”和“该”也旨在包括多数形式,除非上下文清楚地表示其他含义。还应当理解,本文中使用的术语“和/或”是指并包含一个或多个相关联的列出项目的任何或所有可能组合。
应当理解,尽管在本申请可能采用术语第一、第二、第三等来描述各种信息,但这些信息不应限于这些术语。这些术语仅用来将同一类型的信息彼此区分开。例如,在不脱离本申请范围的情况下,第一信息也可以被称为第二信息,类似地,第二信息也可以被称为第一信息。取决于语境,如在此所使用的词语“如果”可以被解释成为“在……时”或“当……时”或“响应于确定”。
目前,图形界面中的各事件的响应处理大多都是基于事件的,如图1所示,一个事件源101注册了多个监听者,分别为监听者A 103,监听者B 104,监听者C 105,监听者D106,当所述事件源的事件触发后,事件分发器102会将该事件分发给各个监听者,各监听者分别依据自己的职责对事件做出相应处理。比如,点击界面中的一个按钮,这时候注册了这个按钮的监听者都可以监听到这个按钮点击事件,然后分别做出相应的处理。在这种处理模式中,各监听者只会依据自己的职责处理事件,不会理会其他的监听者,监听者之间缺乏处理结果和处理数据的传递和交流。但是,往往在很多情况下,当一个事件触发后,一个监听者需要依赖上一个监听者的处理结果去处理事件,或者如果上一个监听者已经处理事件的话某些监听者就无需再处理。这个时候上一个监听者需要将处理的结果生成一个新的事件,然后将这个新的事件发送给下一个监听者。这样一来,下一个监听者除了需要监听和处理最初的事件外还需要监听处理这个新事件。如果下一个监听者需要依赖多个监听者的处理结果,那么它需要监听和处理很多的事件,这种模式中,监听者之间的信息的传递需要依赖多个事件,非常地繁琐,不利于监听者间的信息传递。
为了解决上述问题,本申请提供了一种数据分发的方法,参考图2,所述方法包括:
S201、当数据更新触发事件时,基于预设优先级以及监听者预先注册的监听数据的类型将更新后的数据发送给优先级高的监听者,以使所述优先级高的监听者根据所述更新后的数据处理所述事件并生成处理参数;
S202、接收所述优先级高的监听者回传的处理参数;
S203、判断所述处理参数中是否包括终止事件的指示;
S204、如果不包括,则将所述更新后的数据和所述处理参数发送给优先级低的监听者;
S205、如果包括,则终止所述事件。
本申请提供的数据分发的方法基于一个由自定义代码所构成的功能系统实现,所述功能系统我们可以称之为数据分发器。以下结合图3来解释本申请提供的数据分发的方法,一般一个事件可以有多个监听者,如监听者A 303,监听者B 304,监听者C 305,监听者D306,每个监听者根据自己的业务对事件做出相应的处理。此外,事件都是与数据实体绑定的,一个事件可以绑定一种数据类型。监听者根据自己的业务预先向所述数据分发器302注册数据监听,注册数据监听后,当有数据发生更新或变化时301,数据分发器才会将更新后的数据307发送给注册过的监听者。
不难理解,对于某个事件,不同的监听者处理该事件的优先级也不一样,有些监听者处理事件的重要性和紧急性比较高,需要优先处理事件,因而这些监听者的优先级高,有些监听者可以在其他监听者处理事件后再处理,或者在其他监听者处理后无需再处理此事件,因而这些监听者的优先级比较低。因此,我们可以根据事件和监听者的实际情况将监听者相对于某个事件的优先级预先设置好。在某个例子中,可以根据监听者处理事件的顺序来设置监听者的优先级,监听者处理事件的顺序越靠前,监听者优先级越高。例如,在即时通讯应用中,与好友聊天时,收到对方发送的一条新的聊天信息为一个事件,需要监听所述收到新的聊天信息的事件监听者有负责保存数据的数据存储模块、显示聊天信息的会话记录模块、以及显示是否有未读消息的会话列表模块,当收到新的聊天信息后,需要先将聊天信息存储并解析,因而可以将数据存储模块的优先级设置成最高,然后会话记录模块需要将解析后的聊天信息显示在会话记录的窗口供用户读取,因而可以将会话记录的优先级设置成第二,当用户在会话记录的窗口读取过聊天信息时,会话列表窗口可以不用显示未读消息,因而可以将会话列表的优先级设置成第三。监听者的优先级的设置可以根据用户的喜好或结合监听者与事件的实际情况具体去设置,本申请不作限制。
另外,需要指出的是,本申请中所提到优先级高的监听者和优先级低的监听者是相对而言的,设置好监听者的优先级后,任何一个监听者相对于优先级在它后面的监听者都可以称之为优先级高的监听者,相对于优先级在它前面的监听者,都可以称之为优先级低的监听者,并不是特指某个监听者。
预先设置好监听者相对于事件的优先级,并且监听者预先注册好监听数据,当与事件绑定的数据更新后,会触发事件,然后数据分发器会根据预先设置好的优先级和监听者注册监听数据类型的情况将更新后的数据发给优先级高的监听者,比如监听者A 304,优先级高的监听者A 304根据自身的业务情况处理所述事件并根据处理的结果生成处理参数308。由于在某些情况下,优先高的监听者将事件处理完后,事件就可以终止了,无需下一个优先级低的监听者再处理此事件,因此,优先级高的监听者在处理参数中可以设置终止事件的指示,再将处理参数回传给数据分发器。数据分发器在收到回传的处理参数308后,可以判断处理参数中是否包括终止事件的指示,如果包括,则终止事件,不会将更新后的数据以及处理参数309再发送给下一个优先级低的监听者,比如监听者B 305。如果不包括,则会将更新后的数据和处理参数309发送给优先级低的监听者,优先级低的监听B 305者根据所述更新后的数据和处理参数处理事件。
由于监听者之间需要互相传递信息,比如,下一监听者可以根据上一个监听者的处理结果来决定要如何处理事件,或者利用上一个监听者处理后的数据去处理事件,或者上一个监听者处理事件后,认为这个事件可以终止了,无需再传递下去,这个时候就可以通过处理参数来传递这些信息。在某个实施例中,处理参数可以包括:处理后的数据、处理状态和/或自定义参数,其中自定义参数中包括终止事件的参数。处理后的数据为上一个监听者处理事件后生成的新的数据。比如上一个监听者对触发事件的原始数据进行解析后得到的数据,处理状态是上一个监听者处理事件的结果,比如,已处理还是未处理。自定义参数监听者根据自己的处理结果自己设置的一些参数,例如,即时通讯应用中会话记录模块再处理完用户读取聊天信息后,要重新设置未读信息的条数。另外,优先级高的监听者处理完事件后,认为没有必要再将事件传递下去,也可以在自定义参数中设置终止事件的参数,以便数据分发器在接到回传的处理参数后,不再向下一个监听者发送。本申请提供的数据分发的方法去响应和处理事件是基于数据驱动的,有利于数据在各监听者间的传递,监听者之间可以互相传递处理参数,了解其他监听者的处理结果,且数据传递不需借助新的事件,方便快捷。
由于一个事件可以与一种数据类型绑定,在某个实施例中,为了在数据更新触发事件时,数据分发器可以更快速地找到相应的监听者,在监听者预先注册监听数据后,基于数据类型将监听者分类存储于不同事件的监听池中,这样同一个事件的监听者都在同一个监听池,并且可以将这些监听者按照预先设置好的优先级排序。如图4所示,当数据更新触发事件时,可以根据所述数据类型查找到所述数据的监听池(S401),然后从所述监听池中找到所述优先级高的监听者(S402),并将所述更新后的数据发送给所述优先级高的监听者(S403)。将同一个事件的监听者存储于同一个监听池并按照预先设置的优先级高低顺序排序,数据分发器在收到数据变化的通知后可以更快速的找到优先级最高的监听者,然后按照顺序将更新后的数据和上一个监听者的处理参数按照顺序依次传递下去。
在某个实施例中,监听者在收到数据分发器发送的数据后,可以根据自身的业务情况去设置一个执行线程,所述执行线程可以是主线程,也可以是IO线程,具体根据监听者的实际情况设置。设置好执行线程后,监听者可以通过执行线程去处理事件。
为了进一步解释本申请提供的一种数据分发的方法,以下结合图5以一个具体的实施例加以说明。
在即时通讯应用中,与好友聊天时,收到一个好友发送的聊天信息即为一个事件。需要监听收到信息事件的监听者包括保存数据模块503、会话记录模块504,会话列表模块505、未读消息小红点标识模块506。自定义一段代码组成一个功能系统,所述代码组成的功能系统用于实现监听者之间的数据分发,并将这个可以实现数据分发的功能系统称之为数据分发器502。数据分发器可以接收即时通讯应用中收到聊天信息这一事件绑定的数据实体501。预先将上述四个监听者向数据分发器502注册监听数据实体501,以便数据实体发生更新时,数据分发器会将更新后的数据发送给监听者。根据上述四个监听者的业务情况,预先设置好四个监听者的优先级数值,优先级值数值越高,优先级越大。其中,保存数据模块503优先级数值为1000,会话记录模块504优先级数值为500,会话列表模块505优先级数值为300、未读消息小红点标识模块506优先级数值为100。将上述四个监听者存储于收到聊天信息事件的监听池中,并按照优先级高低排序。
当接收到某好友的一条新的聊天信息后,数据实体501的数据会更新,并把数据更新的情况通知数据分发器502,数据分发器502会从收到聊天信息事件的监听池中找到优先级最高的监听者保存数据模块503,将更新后的数据发送给保存数据模块503,保存数据模块会设置一个执行线程去处理该事件,保存并解析数据然后将解析后的数据回传给数据分发器502。数据分发器502收到解析数据后,从监听池中找到优先级第二的会话记录模块504,将更新后的数据以及保存数据模块503解析后的数据发送给会话记录模块504,会话记录模块向用户展示解析后的数据,即收到的聊天信息,然后向数据分发器502回传处理结果“聊天信息已读”。数据分发器502再从监听池找到优先级第三的数据列表模块505,将解析数据以及会话记录模块504回传的处理结果发送给数据列表模块505,数据列表模块505展示解析数据,然后根据会话记录模块504的处理结果决定是否要要显示未读消息的标识,如果需要显示,则设置需要显示未读消息的参数,并设置未读消息的条数,然后再将设置好的需要显示未读消息的参数以及未读消息的条数回传给数据分发器。如果不需要,则设置指示终止事件的参数发送数据分发器。数据分发器收到回传信息后,根据数据列表模块505回传的信息,判断是要将回传的信息继续发送给优先级第四的未读消息小红点标识模块506,还是要终止事件。如果回传信息中包含指示终止事件的参数,则数据分发器会终止事件,不会继续向未读消息小红点标识模块506发送信息,如果回传信息中未包含指示终止事件的参数,则继续将回传的信息和数据发送给未读消息小红点标识模块506,以便未读消息小红点标识模块506继续处理事件,显示未读信息的条数。
与前述一种数据分发的方法的实施例相对应,本申请还提供了一种数据分发的装置。
请参考图6,所述装置600包括:
发送模块601,用于当数据更新触发事件时,基于预设优先级以及监听者预先注册的监听数据的类型将更新后的数据发送给优先级高的监听者,以使所述优先级高的监听者根据所述更新后的数据处理所述事件并生成处理参数;以及用于在判断所述处理参数中不包括终止事件的指示后,将所述更新后的数据和所述处理参数发送给优先级低的监听者;
接收模块602,用于接收所述优先级高的监听者回传的处理参数;
判断模块603,用于判断所述处理参数中是否包括终止事件的指示;
终止模块604,用于在判断所述处理参数中包括终止事件的指示后,终止所述事件。
可选地,所述处理参数包括:处理后的数据、处理状态和/或自定义参数;其中,所述自定义参数包括指示终止事件的参数。
可选地,所述监听者的监听事件为预先注册,所述监听事件与被监听数据的类型绑定,基于数据的类型所述监听者被分类存储于不同的监听池中,基于预设优先级所述监听者被按照优先级高低顺序排序;当数据更新触发事件时,将所述更新后的数据发送给优先级高的监听者具体包括:
根据所述数据的类型查找到所述数据的监听池;
从所述监听池中找到所述优先级高的监听者;
将所述更新后的数据发送给所述优先级高的监听者。
可选地,所述优先级高的监听者根据所述更新后的数据处理所述事件并生成处理参数包括:
所述优先级高的监听者设置执行线程;
通过所述执行线程处理所述事件并生成所述处理参数。
可选地,所述监听者的优先级根据监听者处理事件的顺序设置,监听者处理事件的顺序越前,监听者优先级越高。
上述装置中各个单元的功能和作用的实现过程具体详见上述方法中对应步骤的实现过程,在此不再赘述。
对于装置实施例而言,由于其基本对应于方法实施例,所以相关之处参见方法实施例的部分说明即可。以上所描述的装置实施例仅仅是示意性的,其中所述作为分离部件说明的单元可以是或者也可以不是物理上分开的,作为单元显示的部件可以是或者也可以不是物理单元,即可以位于一个地方,或者也可以分布到多个网络单元上。可以根据实际的需要选择其中的部分或者全部模块来实现本申请方案的目的。本领域普通技术人员在不付出创造性劳动的情况下,即可以理解并实施。
另外,本申请还提供了一种终端设备,如图7所示,所述终端设备包括:
存储器,用于存储可执行的计算机程序指令;
处理器,用于执行所述计算机程序指令以实现以下方法步骤:
当数据更新触发事件时,基于预设优先级以及监听者预先注册的监听数据的类型将更新后的数据发送给优先级高的监听者,以使所述优先级高的监听者根据所述更新后的数据处理所述事件并生成处理参数;
接收所述优先级高的监听者回传的处理参数;
判断所述处理参数中是否包括终止事件的指示;
如果不包括,则将所述更新后的数据和所述处理参数发送给优先级低的监听者;
如果包括,则终止所述事件。
进一步地,本申请还提供了一种计算机可读存储介质,所述计算机可读存储介质上存储有计算机程序,所述计算机程序被处理器执行时实现以下方法步骤:当数据更新触发事件时,基于预设优先级以及监听者预先注册的监听数据的类型将更新后的数据发送给优先级高的监听者,以使所述优先级高的监听者根据所述更新后的数据处理所述事件并生成处理参数;
接收所述优先级高的监听者回传的处理参数;
判断所述处理参数中是否包括终止事件的指示;
如果不包括,则将所述更新后的数据和所述处理参数发送给优先级低的监听者;
如果包括,则终止所述事件。
本申请对现有技术做出贡献的部分或者该技术方案的全部或部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储介质中,包括若干指令用以使得一台终端设备执行本申请各个实施例方法的全部或部分步骤。而前述的存储介质包括:U盘、移动硬盘、只读存储器(Read-Only Memory,ROM)、随机存取存储器(Random AccessMemory,RAM)、磁碟或者光盘等各种可以存储程序代码的介质。
以上所述仅为本申请的较佳实施例而已,并不用以限制本申请,凡在本申请的精神和原则之内,所做的任何修改、等同替换、改进等,均应包含在本申请保护的范围之内。

Claims (10)

1.一种数据分发的方法,其特征在于,所述方法包括:
当数据更新触发事件时,基于预设优先级以及监听者预先注册的监听数据的类型将更新后的数据发送给优先级高的监听者,以使所述优先级高的监听者根据所述更新后的数据处理所述事件并生成处理参数;
接收所述优先级高的监听者回传的处理参数;
判断所述处理参数中是否包括终止事件的指示;
如果不包括,则将所述更新后的数据和所述处理参数发送给优先级低的监听者;
如果包括,则终止所述事件。
2.如权利要求1所述的一种数据分发的方法,其特征在于,所述处理参数包括:处理后的数据、处理状态和/或自定义参数;其中,所述自定义参数包括指示终止事件的参数。
3.如权利要求1所述的一种数据分发的方法,其特征在于,所述优先级高的监听者根据所述更新后的数据处理所述事件并生成处理参数包括:
所述优先级高的监听者设置执行线程;
通过所述执行线程处理所述事件并生成所述处理参数。
4.如权利要求1所述的一种数据分发的方法,其特征在于,所述监听者预先注册的监听数据的类型与监听事件绑定,基于数据类型所述监听者被分类存储于不同事件的监听池中,基于预设优先级所述监听者被按照优先级高低的顺序排序;
当数据更新触发事件时,将所述更新后的数据发送给优先级高的监听者具体包括:
根据所述数据类型查找到所述数据的监听池;
从所述监听池中找到所述优先级高的监听者;
将所述更新后的数据发送给所述优先级高的监听者。
5.如权利要求1所述的一种数据分发的方法,其特征在于,所述监听者的优先级根据监听者处理事件的顺序设置,监听者处理事件的顺序越前,监听者优先级越高。
6.一种数据分发的装置,其特征在于,所述装置包括:
发送模块,用于当数据更新触发事件时,基于预设优先级以及监听者预先注册的监听数据的类型将更新后的数据发送给优先级高的监听者,以使所述优先级高的监听者根据所述更新后的数据处理所述事件并生成处理参数;以及用于在判断所述处理参数中不包括终止事件的指示后,将所述更新后的数据和所述处理参数发送给优先级低的监听者;
接收模块,用于接收所述优先级高的监听者回传的处理参数;
判断模块,用于判断所述处理参数中是否包括终止事件的指示;
终止模块,用于在判断所述处理参数中包括终止事件的指示后,终止所述事件。
7.如权利要求6所述的一种数据分发的装置,其特征在于,所述处理参数包括:处理后的数据、处理状态和/或自定义参数;其中,所述自定义参数包括指示终止事件的参数。
8.如权利要求6所述的一种数据分发的装置,其特征在于,所述监听者的监听事件为预先注册,所述监听事件与被监听数据的类型绑定,基于数据的类型所述监听者被分类存储于不同的监听池中,基于预设优先级所述监听者被按照优先级高低顺序排序;
当数据更新触发事件时,将所述更新后的数据发送给优先级高的监听者具体包括:
根据所述数据的类型查找到所述数据的监听池;
从所述监听池中找到所述优先级高的监听者;
将所述更新后的数据发送给所述优先级高的监听者。
9.一种终端设备,其特征在于,所述终端设备包括:
存储器,用于存储可执行的计算机程序指令;
处理器,用于执行所述计算机程序指令以实现如权利要求1至5的任一项数据分发的方法步骤。
10.一种计算机可读存储介质,其特征在于,所述计算机可读存储介质上存储有计算机程序,所述计算机程序被处理器执行时实现如权利要求1至5任一项的数据分发的方法步骤。
CN201811113217.8A 2018-09-25 2018-09-25 一种数据分发的方法、装置、终端设备及存储介质 Active CN109376054B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN201811113217.8A CN109376054B (zh) 2018-09-25 2018-09-25 一种数据分发的方法、装置、终端设备及存储介质

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN201811113217.8A CN109376054B (zh) 2018-09-25 2018-09-25 一种数据分发的方法、装置、终端设备及存储介质

Publications (2)

Publication Number Publication Date
CN109376054A true CN109376054A (zh) 2019-02-22
CN109376054B CN109376054B (zh) 2023-02-28

Family

ID=65401659

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201811113217.8A Active CN109376054B (zh) 2018-09-25 2018-09-25 一种数据分发的方法、装置、终端设备及存储介质

Country Status (1)

Country Link
CN (1) CN109376054B (zh)

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN109976923A (zh) * 2019-03-12 2019-07-05 深圳点猫科技有限公司 一种基于微信小程序的组件通讯实现方法及装置
CN111897694A (zh) * 2020-07-30 2020-11-06 北京百度网讯科技有限公司 小程序中消息处理方法及装置、设备、存储介质

Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20160255165A1 (en) * 2015-02-26 2016-09-01 Fujitsu Limited Event notification method, event notification device, and storage medium
CN106326016A (zh) * 2016-07-28 2017-01-11 武汉票据交易中心有限公司 一种多线程事件分发方法和系统
CN107656822A (zh) * 2016-07-25 2018-02-02 武汉票据交易中心有限公司 一种业务流程的处理方法及相关系统
CN108520316A (zh) * 2018-03-28 2018-09-11 南京智格电力科技有限公司 一种超限报警数据优化处理方法

Patent Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20160255165A1 (en) * 2015-02-26 2016-09-01 Fujitsu Limited Event notification method, event notification device, and storage medium
CN107656822A (zh) * 2016-07-25 2018-02-02 武汉票据交易中心有限公司 一种业务流程的处理方法及相关系统
CN107656777A (zh) * 2016-07-25 2018-02-02 武汉票据交易中心有限公司 一种基于事件的流程处理方法及系统
CN106326016A (zh) * 2016-07-28 2017-01-11 武汉票据交易中心有限公司 一种多线程事件分发方法和系统
CN108520316A (zh) * 2018-03-28 2018-09-11 南京智格电力科技有限公司 一种超限报警数据优化处理方法

Cited By (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN109976923A (zh) * 2019-03-12 2019-07-05 深圳点猫科技有限公司 一种基于微信小程序的组件通讯实现方法及装置
CN109976923B (zh) * 2019-03-12 2020-12-18 深圳点猫科技有限公司 一种基于微信小程序的组件通讯实现方法及装置
CN111897694A (zh) * 2020-07-30 2020-11-06 北京百度网讯科技有限公司 小程序中消息处理方法及装置、设备、存储介质
CN111897694B (zh) * 2020-07-30 2023-07-07 北京百度网讯科技有限公司 小程序中消息处理方法及装置、设备、存储介质

Also Published As

Publication number Publication date
CN109376054B (zh) 2023-02-28

Similar Documents

Publication Publication Date Title
US9973452B2 (en) Method and system for exchanging emails
CN108243086B (zh) 一种消息处理方法及系统
CN106791052A (zh) 一种移动终端筛选即时通信应用中聊天记录的方法及系统
CN105656763B (zh) 一种消息推送方法和装置
WO2017166464A1 (zh) 一种信息交互的方法及终端
CN109802881A (zh) 一种群聊消息的定向提醒处理方法及装置
CN107562556A (zh) 故障的恢复方法、恢复装置及存储介质
CN101272358B (zh) 在即时通信中展示用户群通信能力的方法、设备及系统
WO2017016084A1 (zh) 告警信息通知方法、装置及告警信息过滤设备
CN109376054A (zh) 一种数据分发的方法、装置、终端设备及存储介质
CN109391539A (zh) 一种消息处理方法及装置
CN106533897A (zh) 一种判断即时通讯消息已读的方法及装置
CN112003778B (zh) 消息处理方法、装置、设备和计算机存储介质
CN110324233A (zh) 未读消息角标提示方法、装置、设备及存储介质
CN107786422A (zh) 一种消息提醒方法及装置
CN102045274B (zh) 基于即时通信实现信息交互的方法和通信系统
CN108243085B (zh) 通信群组状态标识的推送、设置方法和装置
US11756444B2 (en) Student message monitoring using natural language processing
CN108572949A (zh) 一种房屋信息搜索处理方法及装置
CN107623620A (zh) 随机性交互数据的处理方法、网络服务器及智能对话系统
CN107294843A (zh) 一种即时通讯消息处理方法及装置
CN111897704A (zh) 会话日志分析方法、电子设备及存储介质
CN201181950Y (zh) 一种在企业即时通信工具中选择接收者的系统
CN103150803A (zh) 一种等候提醒方法及装置
CN110730323B (zh) 会议交互信息处理方法、装置、计算机装置及存储介质

Legal Events

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