CN111625370B - 一种消息推送方法、装置、电子设备及存储介质 - Google Patents

一种消息推送方法、装置、电子设备及存储介质 Download PDF

Info

Publication number
CN111625370B
CN111625370B CN201910146910.3A CN201910146910A CN111625370B CN 111625370 B CN111625370 B CN 111625370B CN 201910146910 A CN201910146910 A CN 201910146910A CN 111625370 B CN111625370 B CN 111625370B
Authority
CN
China
Prior art keywords
thread
state
interface
priority
working
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
CN201910146910.3A
Other languages
English (en)
Other versions
CN111625370A (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.)
Hangzhou Hikvision System Technology Co Ltd
Original Assignee
Hangzhou Hikvision System 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 Hangzhou Hikvision System Technology Co Ltd filed Critical Hangzhou Hikvision System Technology Co Ltd
Priority to CN201910146910.3A priority Critical patent/CN111625370B/zh
Publication of CN111625370A publication Critical patent/CN111625370A/zh
Application granted granted Critical
Publication of CN111625370B publication Critical patent/CN111625370B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/46Multiprogramming arrangements
    • G06F9/54Interprogram communication
    • G06F9/546Message passing systems or structures, e.g. queues
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/44Arrangements for executing specific programs
    • G06F9/451Execution arrangements for user interfaces
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/46Multiprogramming arrangements
    • G06F9/50Allocation of resources, e.g. of the central processing unit [CPU]
    • G06F9/5005Allocation of resources, e.g. of the central processing unit [CPU] to service a request
    • G06F9/5027Allocation of resources, e.g. of the central processing unit [CPU] to service a request the resource being a machine, e.g. CPUs, Servers, Terminals
    • G06F9/5038Allocation of resources, e.g. of the central processing unit [CPU] to service a request the resource being a machine, e.g. CPUs, Servers, Terminals considering the execution order of a plurality of tasks, e.g. taking priority or time dependency constraints into consideration

Landscapes

  • Engineering & Computer Science (AREA)
  • Software Systems (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Human Computer Interaction (AREA)
  • Debugging And Monitoring (AREA)

Abstract

本发明实施例提供了一种消息推送方法、装置、电子设备及存储介质,方案如下:应用程序的监控线程按照预设时间间隔,获取该应用程序的界面线程的CPU使用率,并根据该CPU使用率,确定界面线程的当前状态;应用程序的工作线程根据界面线程的当前状态,以及界面线程状态与推送速率的对应关系,确定当前推送速率,并按照当前推送速率,向界面线程推送消息。通过本发明实施例提供的方案,可以在不同的运行环境中,根据应用程序界面线程的繁忙程度,工作线程按照不同的速率向界面线程推送消息,提高应用程序对用户操作的响应速度,降低应用程序出现长时间处于无响应状态或卡顿状态的概率,提高应用程序的稳定性。

Description

一种消息推送方法、装置、电子设备及存储介质
技术领域
本发明涉及计算机技术领域,特别是涉及一种消息推送方法、装置、电子设备及存储介质。
背景技术
计算机在启动一应用程序时,创建针对该应用程序的一个界面线程和多个工作线程,即在该应用程序中,包括一个界面线程和多个工作线程。其中,界面线程用于处理来自***的消息,工作线程用于处理繁琐的计算或者长时间的任务。当应用程序启动后,该应用程序中包含的每一工作线程,持续不断地向界面线程推送消息。这将会造成界面线程过于繁忙,使得界面线程的消息队列中数据积压严重,对用户的操作响应缓慢,甚至处于长时间应用程序无响应或者卡顿状态。
发明内容
本发明实施例的目的在于提供一种消息推送方法、装置及电子设备,以提高应用程序对用户操作的响应速度,提高应用程序的稳定性。具体技术方案如下:
本发明实施例提供了一种消息推送方法,所述方法包括:
应用程序的监控线程按照预设时间间隔,获取所述应用程序的界面线程的CPU(Central Processing Unit,中央处理单元)使用率;
所述监控线程根据所述CPU使用率,确定所述界面线程的当前状态;
所述应用程序的工作线程根据所述界面线程的当前状态,以及界面线程状态与推送速率的对应关系,确定当前推送速率;
所述工作线程按照所述当前推送速率,向所述界面线程推送消息。
可选的,在所述监控线程根据所述CPU使用率,确定所述界面线程的当前状态之后,还包括:
所述监控线程根据所述界面线程的当前状态,确定所述工作线程的优先级;
所述应用程序按照预设时间片,根据所述工作线程的优先级,执行所述工作线程,以使得所述工作线程按照所述当前推送速率,向所述界面线程推送消息。
可选的,所述监控线程根据所述界面线程的当前状态,确定所述工作线程的优先级的步骤,包括:
所述监控线程确定所述工作线程的优先级状态是否为已调整状态;
若所述工作线程的优先级状态为已调整状态,且所述界面线程的当前状态为空闲状态,则所述监控线程将所述工作线程的优先级设置为第一优先级,将所述工作线程的优先级状态设置为未调整状态;
若所述工作线程的优先级状态为未调整状态,且所述界面线程的当前状态为非空闲状态,则所述监控线程根据所述工作线程的属性特征,将所述工作线程的优先级设置为第二优先级,将所述工作线程的优先级状态设置为已调整状态,所述第二优先级高于所述第一优先级。
可选的,所述应用程序的工作线程根据所述界面线程的当前状态,以及界面线程状态与推送速率的对应关系,确定当前推送速率的步骤,包括:
若所述界面线程的当前状态为空闲状态,则所述应用程序的工作线程根据界面线程状态与推送速率的对应关系,确定当前推送速率为第一推送速率;
若所述界面线程的当前状态为非空闲状态,则所述工作线程根据界面线程状态与推送速率的对应关系,确定当前推送速率为第二推送速率;
其中,所述第一推送速率大于所述第二推送速率。
本发明实施例还提供了一种消息推送装置,所述装置包括:
第一获取模块,用于应用程序的监控线程按照预设时间间隔,获取所述应用程序的界面线程的CPU使用率;
第一确定模块,用于所述监控线程根据所述CPU使用率,确定所述界面线程的当前状态;
第二确定模块,用于所述应用程序的工作线程根据所述界面线程的当前状态,以及界面线程状态与推送速率的对应关系,确定当前推送速率;
第一推送模块,用于所述工作线程按照所述当前推送速率,向所述界面线程推送消息。
可选的,所述装置还包括:
第三确定模块,用于所述监控线程根据所述界面线程的当前状态,确定所述工作线程的优先级;
第二获取模块,用于所述应用程序按照预设时间片,根据所述工作线程的优先级,执行所述工作线程,以使得所述工作线程按照所述当前推送速率,向所述界面线程推送消息。
可选的,所述第三确定模块,具体用于所述监控线程确定所述工作线程的优先级状态是否为已调整状态;若所述工作线程的优先级状态为已调整状态,且所述界面线程的当前状态为空闲状态,则所述监控线程将所述工作线程的优先级设置为第一优先级,将所述工作线程的优先级状态设置为未调整状态;若述工作线程的优先级为未调整状态,且所述界面线程的当前状态为非空闲状态,则所述监控线程根据所述工作线程的属性特征,将所述工作线程的优先级设置为第二优先级,将所述工作线程的优先级状态设置为已调整状态,所述第二优先级高于所述第一优先级。
可选的,所述第二确定模块,具体用于若所述界面线程的当前状态为空闲状态,则所述应用程序的工作线程根据界面线程状态与推送速率的对应关系,确定当前推送速率为第一推送速率;若所述界面线程的当前状态为非空闲状态,则所述工作线程根据界面线程状态与推送速率的对应关系,确定当前推送速率为第二推送速率;其中,所述第一推送速率大于所述第二推送速率。
本发明实施例还提供了一种电子设备,所述电子设备包括处理器、通信接口、存储器和通信总线,其中,处理器,通信接口,存储器通过通信总线完成相互间的通信;
存储器,用于存放计算机程序;
处理器,用于执行存储器上所存放的程序时,实现上述任一所述的消息推送方法步骤。
本发明实施例还提供了一种计算机可读存储介质,所述计算机可读存储介质内存储有计算机程序,所述计算机程序被处理器执行时实现上述任一所述的消息推送方法步骤。
本发明实施例还提供了一种包含指令的计算机程序产品,当其在计算机上运行时,使得计算机执行上述任一所述的消息推送方法。
本发明实施例提供的一种消息推送方法、装置、电子设备及存储介质,应用程序的监控线程按照预设时间间隔,获取该应用程序的界面线程的CPU使用率,并根据该CPU使用率,确定界面线程的当前状态;应用程序的工作线程根据界面线程的当前状态,以及界面线程状态与推送速率的对应关系,确定当前推送速率,并按照当前推送速率,向界面线程推送消息。通过本发明实施例提供的方法,可以在不同的运行环境中,根据应用程序界面线程的繁忙程度,工作线程按照不同的速率向界面线程推送消息,有效缓解界面线程的数据积压情况,提高了应用程序对用户操作的响应速度,降低了应用程序出现长时间处于无响应状态或卡顿状态的概率,提高了应用程序的稳定性。
当然,实施本发明的任一产品或方法并不一定需要同时达到以上所述的所有优点。
附图说明
为了更清楚地说明本发明实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
图1为现有一应用程序中工作线程与界面线程之间关系的一种示意图;
图2为本发明实施例提供的消息推送方法的第一种流程图;
图3为本发明实施例提供的消息推送方法的第二种流程图;
图4为本发明实施例提供的消息推送方法的第三种流程图;
图5为本发明实施例提供的消息推送方法的第四种流程图;
图6为本发明实施例提供的消息推送装置的一种结构示意图;
图7为本发明实施例提供的电子设备的一种结构示意图。
具体实施方式
下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
如图1所示,图1为现有一应用程序中工作线程与界面线程之间关系的一种示意图。在该应用程序运行启动时,将会生成关于该应用程序的一个界面线程101,以及多个工作线程102-107。在该应用程序运行过程中,多个工作线程102-107将持续不断的向界面线程101推送消息。当工作线程102-107向界面线程101推送的消息过多时,界面线程的消息队列中的数据将会出现积压现象,造成应用程序对用户操作的响应变得缓慢,甚至使得应用程序处于长时间处于无响应或者卡顿状态。
以应用程序word(字)为例进行说明。在用户使用word进行文本编辑时,用户在对编辑栏中对文字进行编辑,或者选用菜单栏中的页面布局、视图等功能时,将会根据该用户的操作在界面线程中生成对应的任务。与此同时,word也会自动对文档中的文字的数量,文档的页数等进行统计,生成对应的多个工作线程。word可以采用消息循环的方式执行每一工作线程,得到每一工作线程的消息。工作线程将每一消息推送给界面线程。例如,工作线程可以将表示文档中文字数量的消息推送给界面线程,界面线程可以根据接收到的消息,将文档中文字的数量显示在word的界面中。可是一旦word中各工作线程向界面线程推送的消息过多,导致界面线程的消息队列中的数据堆积,word的界面将无法及时响应用户的操作。例如,在编辑文字时,文字会延迟一段时间才会出现在word界面上的现象,或者word界面直接无法响应用户的编辑操作等现象。
为了解决应用程序的工作线程推送的消息过多,造成界面线程过于繁忙,消息队列中数据积压严重,出现应用程序对用户的操作响应缓慢的问题,本发明实施例提供了一种消息推送方法,该方法可以应用于任一应用程序对应的电子设备。如图2所示,图2为本发明实施例提供的消息推送方法的第一种流程图。在该消息推送方法中,S201,应用程序的监控线程按照预设时间间隔,获取该应用程序的界面线程的CPU使用率。S202,监控线程根据该CPU使用率,确定界面线程的当前状态。S203,应用程序的工作线程根据界面线程的当前状态,以及界面线程状态与推送速率的对应关系,确定当前推送速率。S204,工作线程按照当前推送速率,向界面线程推送消息。
通过本发明实施例提供的方法,可以在不同的运行环境中,根据应用程序界面线程的繁忙程度,工作线程可以按照不同的速率向界面线程推送消息,有效缓解界面线程的数据积压情况,提高了应用程序对用户操作的响应速度,降低了应用程序出现长时间处于无响应状态或卡顿状态的概率,提高了应用程序的稳定性。
基于与图2提供的方法相同的发明构思,本发明实施例提供了一种消息推送方法,应用于应用程序的监控线程。如图3所示,图3为本发明实施例提供的消息推送方法的第二种流程图。该方法包括以下步骤。
步骤S301,按照预设时间间隔,获取应用程序的界面线程的CPU使用率。
在本步骤中,若启动应用程序,则会自动创建一个独立的线程,作为监控线程。该监控线程可以按照预设时间间隔,获取该应用程序的界面线程的CPU使用率。
在本发明的一个实施例中,上述监控线程可以根据应用程序的各工作线程的线程ID(Identification,标识),生成线程ID列表,并根据该线程ID列表对各工作线程进行监控。例如,监控线程可以对工作线程的消息,工作线程的优先级状态,工作线程的当前推送速率等进行监控。
在本发明的一个实施例中,监控线程可以对得到的CPU使用率进行保存,并将该CPU使用率对外共享,使得应用程序的每一工作线程可以实时从监控线程共享的数据中得到界面线程的CPU使用率。
另外,上述预设时间间隔可以根据实际需求进行设定,在此不作具体限定。
步骤S302,根据CPU使用率,确定界面线程的当前状态。
在本步骤中,监控线程可以将CPU使用率与预设的CPU使用率阈值进行比较,根据比较的结果,确定界面线程的当前状态。
一个可选的实施例中,监控线程可以将界面线程的CPU使用率与预设的CPU使用率阈值进行比较。当界面线程的CPU使用率小于预设的CPU使用率阈值时,监控线程可以确定界面线程的当前状态为空闲状态。当界面线程的CPU使用率不小于预设的CPU使用率阈值时,监控线程可以确定界面线程的当前状态为非空闲状态,也可以称为繁忙状态。
一个可选的实施例中,上述预设的CPU使用率阈值可以包括第一使用率阈值和第二使用率阈值。其中,第一使用率阈值小于第二使用率阈值。监控线程可以将CPU使用率与第一使用率阈值以及第二使用率阈值进行比较,并根据比较的结果,确定界面线程的当前状态。
一个可选的实施例中,上述监控线程将CPU使用率与第一使用率阈值和第二使用率阈值进行比较,确定界面线程的当前状态,至少可以包括以下情况。
情况一,若CPU使用率小于第一使用率阈值,则监控线程可以确定界面线程的当前状态为第一状态。
情况二,若CPU使用率不小于第一使用率阈值,且小于第二使用率阈值,则监控线程可以确定界面线程的当前状态为第二状态。
情况三,若CPU使用率不小于第二使用率阈值,则监控线程可以确定界面线程的当前状态为第三状态。
下面以监控线程分别在12:00、12:10以及12:20,获取的界面线程的CPU使用率为例,对上述第一状态、第二状态和第三状态进行说明。设界面线程在12:00的CPU使用率为0.2,在12:10的CPU使用率为0.4,在12:20的CPU使用率为0.5。第一使用率阈值为0.3,第二使用率阈值为0.5。
在12:00时,0.2<0.3,界面线程的CPU使用率小于第一使用率阈值,根据上述情况一,监控线程可以确定12:00时界面线程处于第一状态。
在12:10时,0.3<0.4<0.5,界面线程的CPU使用率介于第一使用率阈值和第二使用率阈值之间,根据上述情况二,监控线程可以确定12:10时界面线线程处于第二状态。
在12:20时,0.5=0.5,界面线程的CPU使用率等于第二使用率阈值,根据上述情况三,监控线程可以确定12:20时界面线程处于第三状态。
一个实施例中,上述第一状态可以表示为上述空闲状态,第二状态和第三状态可以表示为不同繁忙程度的非空闲状态,第二状态的繁忙程度小于第三状态。另一个实施例中,上述第一状态和第二状态可以表示为不同空闲程度的空闲状态,第一状态的空闲程度大于第二状态的空闲程度。第三状态表示为上述非空闲状态。在本发明实施例中,对上述第一状态、第二状态和第三状态不作具体限定。为方便描述在本发明实施例中,将第一状态表示为上述空闲状态,第二状态和第三状态表示为不同繁忙程度的非空闲状态,第二状态的繁忙程度小于第三状态。
在本发明的一个实施例中,上述界面线程当前状态的中包含的状态种类可以不仅仅是第一状态、第二状态和第三状态三种。例如,若设置了3个CPU使用率阈值,则将监控线程获取的界面线程的CPU使用率与设置的3个CPU使用率阈值进行比较时,监控线程确定的界面线程的当前状态可以出现4种不同的状态。这4种状态可以参照上述第一状态、第二状态和第三状态的确定方法,在此不作具体说明了。在本发明实施例中,对界面线程的当前状态中包含的状态种类不作具体限定。
在本发明实施例中,通过将界面线程的CPU使用率与预设的CPU使用率进行比较,可以准确的得到界面线程的当前状态。使得工作线程可以根据界面线程的当前状态,按照不同的速率向界面线程推送消息。
步骤S303,存储界面线程的当前状态。
在本步骤中,监控线程可以对上述步骤S302得到的界面线程的当前状态进行存储。并且监控线程可以将保存的界面线程的当前状态对外共享,也就是将界面线程的当前状态分享给每一工作线程。应用程序的各工作线程可以从监控线程对外共享的数据中得到界面线程的当前状态。根据界面线程的当前状态,以及界面线程状态与推送的对应关系,工作线程可以确定当前推送速率,并按照当前推送速率向界面线程推送消息。
基于与图2提供的方法相同的发明构思,本发明实施例提供了一种消息推送方法,应用于应用程序的工作线程。如图4所示,图4为本发明实施例提供的消息推送方法的第三种流程图。该方法包括以下步骤。
步骤S401,获取应用程序的界面线程的当前状态。
在本步骤中,应用程序的工作线程可以获取监控线程中存储的界面线程的当前状态。例如,工作线程可以实时从上述监控线程对外分享的数据中得到界面线程的当前状态。
步骤S402,根据界面线程的当前状态,以及界面线程状态与推送速率的对应关系,确定当前推送速率。
在本步骤中,工作线程根据界面线程的当前状态,以及界面线程状态与推送关系的对应关系,可以确定工作线程的当前推送速率。
一个可选的实施例中,若界面线程状态可以分为上述空闲状态和非空闲状态,则在上述当前推送速率确定过程中,至少可以包括以下两种情况。
情况一,若界面线程的当前状态为空闲状态,则工作线程根据界面线程状态与推送速率的对应关系,确定当前推送速率为第一推送速率。
情况二,若界面线程的当前状态为非空闲状态,则工作线程根据界面线程状态与推送速率的对应关系,确定当前推送速率为第二推送速率。
针对上述情况一和情况二,第一推送速率大于第二推送速率。
一个可选的实施例中,若界面线程状态可以分为上述第一状态、第二状态和第三状态,则在上述当前推送速率确定过程中,至少可以包括以下三种情况。
情况一,若界面线程的当前状态为第一状态,则工作线程根据界面线程状态与推送速率的对应关系,可以确定当前推送速率为第三推送速率。
情况二,若界面线程的当前状态为第二状态,则工作线程根据界面线程状态与推送速率的对应关系,可以确定当前推送速率为第四推送速率。
情况三,若界面线程的当前状态为第三状态,则工作线程根据界面线程状态与推送速率的对应关系,可以确定当前推送速率为第五推送速率。
针对上述三种情况,第三推送速率大于第四推送速率,第四推送速率不小于第五推送速率。
上述第一推送速率和第三推送速率均表示为界面线程的当前状态为空闲状态时的消息推送速率,但是在数值上第一推送速率可以与第三推送速率相同,也可以与第三推送速率不相同。上述第二推送速率、第四推送速率和第五推送速率表示为界面线程的当前状态为非空闲状态时的消息推送速率,但是在数值上,第二推送速率可以与第四推送速率相同,也可以与第五推送速率相同,还可以与第四推送速率和第五推送速率均不相同。上述第一推送速率、第二推送速率、第三推送速率、第四推送速率和第五推送速率可以根据应用程序的运行环境、用户需求等进行设定。以第一推送速率为例,若第一推送速率是根据应用程序的运行环境进行设定的,则应用程序运行在高配置的电子设备上的第一推送速率可以大于该应用程序运行在低配置的电子设备上的第一推送速率。在本发明实施例中,对第一推送速率、第二推送速率和第三推送速率的设定不作具体限定。
一个实施例中,上述第三推送速率为A,则上述第四推送速率可以为第五推送速率可以为/>
以第三推送速率为每秒推送5000条消息,表示为5000条/秒为例对上述第一状态、第二状态和第三状态对应的工作线程的当前推送速率的确定方法进行说明。
针对上述情况一,若界面线程的当前状态为第一状态,则工作线程可以确定向界面线程推送消息的当前推送速率为5000条/秒。
针对上述情况二,若界面线程的当前状态为第二状态,则工作线程可以确定向界面线程推送消息的当前推送速率可以在5000×1/4=1250条/秒至5000×1/2=2500条/秒之间。例如,第四推送速率可以为2000条/秒。
针对上述情况三,若界面线程的当前状态为第三状态,则工作线程可以确定向界面线程推送消息的推送速率可以为暂停推送至第一推送速率的1/4之间,即0条/秒至5000×1/4=1250条/秒之间。例如,第五推送速率可以为1000条/秒。
在本发明实施例中,根据界面线程的当前状态,工作线程可以按照不同的速率向界面线程推送消息,有效缓解界面线程的数据积压情况,提高了应用程序对用户操作的响应速度,降低了应用程序出现长时间处于无响应状态或卡顿状态的概率,提高了应用程序的稳定。
步骤S403,按照当前推送速率,向界面线程推送消息。
在本步骤中,工作线程可以按照当前推送速率,将工作线程的消息推送给界面线程。
在本发明实施例中,上述工作线程的当前推送速率可以由预设时间内推送数量和推送频度共同确定。
以上述第三推送速率、第四推送速率和第五推送速率为例进行说明。上述第三推送速率是根据第一推送数量与第一推送频度确定的。上述第四推送速率是根据第二推送数量与第二推送频度确定的。上述第五推送速率是根据第三推送数量与第三推送频度确定的。
一个可选的实施例中,上述第三推送速率、第四推送速率以及第五推送速率的确定,至少包括以下两种方式。
方式一,若第一推送数量、第二推送数量以及第三推送数量相等,则第一推送频度可以大于第二推送频度,第二推送频度可以不小于第三推送频度。
方式二,若第一推送频度、第二推送频度以及第三推送频度相等,则第一推送数量可以大于第二推送数量,第二推送数量可以不小于第二推送数量。
以第三推送速率为5000条/秒,第一推送数量为每次100条,表示为100条/次,第一推送频度为每秒50次,表示为50次/秒。且第四推送速率3000条/秒,第五推送速率为1000条/秒为例进行说明。
针对上述方式一,若第一推送数量、第二推送数量和第三推送数量均为100条/次,则第二推送频度为30次/秒,30次/秒<50次/秒,第三推送频度为10次/秒,10次/秒<30次/秒。
针对上述方式二,若第一推送频度、第二推送频度和第三推送频度均为50次/秒,则第二推送数量为60条/次,60条/次<100条/次,第三推送数量为20条/次,20条/次<60条/次。
在确定上述当前推送速率时,不同推送速率对应的推送数量和推送频度之间可以根据用户需求进行设定。在本发明实施例中,不作具体限定。
以第三推送速率与第四推送速率为例进行说明。
一个示例中,第一推送数量大于第二推送数量,且第一推送频度也大于第二推送频度。例如,第三推送速率为5000条/秒,第四推送速率为2000条/秒。其中,第一推送数量为100条/次,第一推送频度为50次/秒。第二推送数量可以为50条/次,50条/次<100条/次,第二推送频度为40条/次,40条/次<50次/秒。
另一个示例中,第一推送数量小于第二推送数量,但第一推送频度大于第二推送频度。例如,第三推送速率为5000条/秒,第四推送速率为2000条/秒。其中,第一推送数量为100条/次,第一推送频度为50次/秒。第二推送数量可以为200条/次,200条/次>100条/次,第一推送频度可以为10次/秒。
在本发明的一个实施例中,针对上述步骤S403,在向界面线程推送消息时,针对每一推送消息,可以按照预设推送顺序,向界面线程推送消息。其中,预设推送顺序可以根据消息的类型,同类消息的数量,消息的紧急程度,用户需求等进行设定,在本发明实施例中,对预设推送顺序不作具体限定。例如,在预设推送顺序中报警类消息可以先于通知类消息被推送给界面线程。现有1000条通知类消息正在等待被推送给界面线程,某一时刻出现20条报警类消息。若工作线程的当前推送速率为500条/秒,则工作线程在下一秒向界面线程推送消息时,可以选取20条报警类消息和480条通知类消息向机界面线程进行推送。
基于与图2提供的方法相同的发明构思,本发明实施例提供了一种消息推送方法。如图5所示,图5为本发明实施例提供的消息推送方法的第四种流程图。
步骤S501,应用程序的监控线程按照预设时间间隔,获取应用程序的界面线程的CPU使用率。
步骤S502,监控线程根据CPU使用率,确定界面线程的当前状态。
上述步骤S501-步骤S502与上述步骤S301-步骤S302相同。
步骤S503,监控线程根据界面线程的当前状态,确定工作线程的优先级。
在本步骤中,若界面线程的当前状态为上述空闲状态,则监控线程针对每一工作线程,可以将该工作线程的优先级设置为相同的优先级,即第一优先级。若界面线程的当前状态为上述非空闲状态,则监控线程针对每一工作线程,根据该工作线程的属性特征确定该工作线程的优先级,即第二优先级。
在本发明实施例中,上述工作线程的属性特征至少包括该工作线程的任务等级级别、紧急程度、等待时间、同类工作线程的累积量等。在此不作具体限定。
在本发明实施例中,针对每一工作线程,该工作线程的属性特征与其他工作线程的属性特征可以是不同的。当界面线程的当前状态为非空闲时,根据每一工作线程的属性特征,确定每一工作线程的第二优先级也可以是不同的,在此不作具体说明。
步骤S504,应用程序按照预设时间片,根据工作线程的优先级,执行工作线程,以使得工作线程按照确定的推送速率,向界面线程推送消息。
在本步骤中,应用程序针对每一工作线程,按照消息循环的方式在一个预设时间片内,执行一个工作线程,得到该工作线程的消息。在下一个预设时间片时,根据每一工作线程的优先级,执行优先级最高的工作线程,得到该工作线程的消息。以此类推,执行每一工作线程,从而使得工作线程可以按照当前推送速率,向界面线程推送消息。
例如,现有10个工作线程,预设时间片为500ms(millisecond,毫秒)。在第一个预设时间片中,正在执行第一个工作线程,该工作线程最多可以执行500ms。若500ms后第一个工作线程仍未执行完,则第一个工作线程将自动移入待执行队列列表中,等待下一次执行。在第二个预设时间片中,针对待执行队列列表中的每一工作线程,应用程序将会确定优先级最高的工作线程,若优先级最高的工作线程为其他工作线程,如第四个工作线程,则在第二个预设时间片中,将执行第四个工作线程。若优先级最高的工作线程仍为第一个工作线程,则在第二个预设时间片中,将继续执行第一个工作线程。依次类推,执行这10个工作线程。
在本发明的一个实施例中,如果出现优先级大小相同的工作线程,可根据每一工作线程的属性特征,重新确定该工作线程的优先级。也可以逐一比较每一工作线程的等待时间、紧急程度等,确定每一工作线程的执行顺序。在对于相同优先级的工作线程的执行顺序,在本发明实施例中,不作具体限定。
步骤S505,应用程序的工作线程根据界面线程的当前状态,以及界面线程状态与推送速率的对应关系,确定当前推送速率。
步骤S506,工作线程按照当前推送速率,向界面线程推送消息。
上述步骤S505-步骤S506与上述步骤S401和步骤S402相同。
一个可选的实施例中,在上述步骤S503中,监控线程根据界面线程的当前状态,在确定工作线程的优先级的过程中,还可以确定工作线程的优先级状态是否为已调整状态。
以界面线程的当前状态包括空闲状态、非空闲状态三种状态为例进行说明。
若界面线程的当前状态为空闲状态,则将工作线程的优先级设置为第一优先级,将工作线程的优先级状态设置为未调整状态。
若界面线程的当前状态为非空闲状态,则根据工作线程的属性特征,将工作线程的优先级设置为第二优先级,将工作线程的优先级状态设置为已调整状态。
具体的,监控线程可以遍历上述线程ID列表中的每一工作线程,根据每一工作线程的优先级状态,确定该工作线程的优先级是否被调整过,具体可以存在以下四种情况。
情况一,若界面线程的当前状态为空闲状态,且该工作线程的优先级状态为未调整状态,则保持该工作线程的优先级,即第一优先级,并保持该工作线程的优先级状态,即未调整状态。
情况二,若界面线程的当前状态为空闲状态,且该工作线程的优先级状态为已调整状态,则将该工作线程的优先级设置为第一优先级,并将该工作线程的优先级状态设置为未调整状态。
情况三,若界面线程的当前状态为非空闲状态,且该工作线程的优先级状态为已调整状态,则保持该工作线程的优先级,即第二优先级,并保持该工作线程的优先级状态,即已调整状态。
情况四,若界面线程的当前状态为非空闲状态,且该工作线程的优先级状态为未调整状态,则将根据该工作线程的属性特征,将该工作线程的优先级设置为第二优先级,并将该工作线程的优先级状态设置为已调整状态。
在本发明的一个实施例中,上述监控线程的线程ID列表除了可以包括各工作线程的线程ID,还可以包括各工作线程的优先级和优先级状态。如表1所示,表1为本发明实施例提供的监控线程的一种线程ID列表。
表1
表1为界面线程的当前状态为非空闲状态时的线程ID列表,优先级为2为上述第一优先级,优先级1、3、5为上述第二优先级。若某一时刻,界面线程的当前状态变为空闲状态,则表1中工作线程1、2、4的优先级将被调整为2,优先级状态也将被调整为未调整状态。
综上所述,通过本发明实施例提供的方法,可以在不同的运行环境中,根据应用程序界面线程的繁忙程度,工作线程可以按照不同的速率向界面线程推送消息,有效缓解界面线程的数据积压情况,提高了应用程序对用户操作的响应速度,降低了应用程序出现长时间处于无响应状态或卡顿状态的概率,提高了应用程序的稳定性。
基于同一种发明构思,根据上述本发明实施例提供的一种消息推送方法,本发明实施例还提供了一种消息推送装置。如图6所示,图6为本发明实施例提供的消息推送装置的一种结构示意图。该装置包括以下模块。
第一获取模块601,用于应用程序的监控线程按照预设时间间隔,获取应用程序的界面线程的CPU使用率。
第一确定模块602,用于监控线程根据CPU使用率,确定界面线程的当前状态。
第二确定模块603,用于应用程序的工作线程根据界面线程的当前状态,以及界面线程状态与推送速率的对应关系,确定当前推送速率。
第一推送模块604,用于工作线程按照当前推送速率,向界面线程推送消息。
可选的,上述消息推送装置还可以包括:
第三确定模块,用于监控线程根据当前状态,确定工作线程的优先级。
第二获取模块,用于应用程序按照预设时间片,根据工作线程的优先级,执行工作线程,以使得工作线程按照当前推送速率,向界面线程推送消息。
可选的,上述第三确定模块,具体可以用于监控线程确定工作线程的优先级状态是否为已调整状态;若工作线程的优先级状态为已调整状态,且界面线程的当前状态为空闲状态,则监控线程将工作线程的优先级设置为第一优先级,将工作线程的优先级状态设置为未调整状态;若工作线程的优先级为未调整状态,且界面线程的当前状态为非空闲状态,则监控线程根据工作线程的属性特征,将工作线程的优先级设置为第二优先级,将工作线程的优先级状态设置为已调整状态,第二优先级高于第一优先级。
通过本发明实施例提供的装置,可以在不同的运行环境中,根据应用程序界面线程的繁忙程度,工作线程可以按照不同的速率向界面线程推送消息,有效缓解界面线程的数据积压情况,提高了应用程序对用户操作的响应速度,降低了应用程序出现长时间处于无响应状态或卡顿状态的概率,提高了应用程序的稳定性。
基于同一种发明构思,根据上述本发明实施例提供的一种消息推送方法,本发明实施例还提供了一种电子设备,如图7所示,包括处理器701、通信接口702、存储器703和通信总线704,其中,处理器701,通信接口702,存储器703通过通信总线704完成相互间的通信;
存储器703,用于存放计算机程序;
处理器701,用于执行存储器703上所存放的程序时,实现如下步骤:
应用程序的监控线程按照预设时间间隔,获取应用程序的界面线程的CPU使用率;
监控线程根据CPU使用率,确定界面线程的当前状态;
应用程序的工作线程根据当前状态,以及界面线程状态与推送速率的对应关系,确定当前推送速率;
工作线程按照当前推送速率,向界面线程推送消息。
通过本发明实施例提供的电子设备,可以在不同的运行环境中,根据应用程序界面线程的繁忙程度,工作线程可以按照不同的速率向界面线程推送消息,有效缓解界面线程的数据积压情况,提高了应用程序对用户操作的响应速度,降低了应用程序出现长时间处于无响应状态或卡顿状态的概率,提高了应用程序的稳定性。
上述电子设备提到的通信总线可以是外设部件互连标准(Peripheral ComponentInterconnect,PCI)总线或扩展工业标准结构(Extended Industry StandardArchitecture,EISA)总线等。该通信总线可以分为地址总线、数据总线、控制总线等。为便于表示,图中仅用一条粗线表示,但并不表示仅有一根总线或一种类型的总线。
通信接口用于上述电子设备与其他设备之间的通信。
存储器可以包括随机存取存储器(Random Access Memory,RAM),也可以包括非易失性存储器(Non-Volatile Memory,NVM),例如至少一个磁盘存储器。可选的,存储器还可以是至少一个位于远离前述处理器的存储装置。
上述的处理器可以是通用处理器,包括中央处理器(Central Processing Unit,CPU)、网络处理器(Network Processor,NP)等;还可以是数字信号处理器(Digital SignalProcessing,DSP)、专用集成电路(Application Specific Integrated Circuit,ASIC)、现场可编程门阵列(Field-Programmable Gate Array,FPGA)或者其他可编程逻辑器件、分立门或者晶体管逻辑器件、分立硬件组件。
基于同一种发明构思,根据上述本发明实施例提供的一种消息推送方法,本发明实施例还提供了一种计算机可读存储介质,该计算机可读存储介质内存储有计算机程序,所述计算机程序被处理器执行时实现上述任一消息推送方法的步骤。
基于同一种发明构思,根据上述本发明实施例提供的一种消息推送方法,本发明实施例还提供了一种包含指令的计算机程序产品,当其在计算机上运行时,使得计算机执行上述实施例中任一消息推送方法。
在上述实施例中,可以全部或部分地通过软件、硬件、固件或者其任意组合来实现。当使用软件实现时,可以全部或部分地以计算机程序产品的形式实现。所述计算机程序产品包括一个或多个计算机指令。在计算机上加载和执行所述计算机程序指令时,全部或部分地产生按照本发明实施例所述的流程或功能。所述计算机可以是通用计算机、专用计算机、计算机网络、或者其他可编程装置。所述计算机指令可以存储在计算机可读存储介质中,或者从一个计算机可读存储介质向另一个计算机可读存储介质传输,例如,所述计算机指令可以从一个网站站点、计算机、服务器或数据中心通过有线(例如同轴电缆、光纤、数字用户线(DSL))或无线(例如红外、无线、微波等)方式向另一个网站站点、计算机、服务器或数据中心进行传输。所述计算机可读存储介质可以是计算机能够存取的任何可用介质或者是包含一个或多个可用介质集成的服务器、数据中心等数据存储设备。所述可用介质可以是磁性介质,(例如,软盘、硬盘、磁带)、光介质(例如,DVD)、或者半导体介质(例如固态硬盘Solid State Disk(SSD))等。
需要说明的是,在本文中,诸如第一和第二等之类的关系术语仅仅用来将一个实体或者操作与另一个实体或操作区分开来,而不一定要求或者暗示这些实体或操作之间存在任何这种实际的关系或者顺序。而且,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、物品或者设备不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、物品或者设备所固有的要素。在没有更多限制的情况下,由语句“包括一个……”限定的要素,并不排除在包括所述要素的过程、方法、物品或者设备中还存在另外的相同要素。
本说明书中的各个实施例均采用相关的方式描述,各个实施例之间相同相似的部分互相参见即可,每个实施例重点说明的都是与其他实施例的不同之处。尤其,对于装置、电子设备、计算机可读存储介质和计算机程序产品等实施例而言,由于其基本相似于方法实施例,所以描述的比较简单,相关之处参见方法实施例的部分说明即可。
以上所述仅为本发明的较佳实施例而已,并非用于限定本发明的保护范围。凡在本发明的精神和原则之内所作的任何修改、等同替换、改进等,均包含在本发明的保护范围内。

Claims (10)

1.一种消息推送方法,其特征在于,包括:
应用程序的监控线程按照预设时间间隔,获取所述应用程序的界面线程的中央处理单元CPU使用率;
所述监控线程根据所述CPU使用率,确定所述界面线程的当前状态;
所述应用程序的工作线程根据所述界面线程的当前状态,以及界面线程状态与推送速率的对应关系,确定当前推送速率;
所述工作线程按照所述当前推送速率,向所述界面线程推送消息。
2.根据权利要求1所述的方法,其特征在于,在所述监控线程根据所述CPU使用率,确定所述界面线程的当前状态之后,还包括:
所述监控线程根据所述界面线程的当前状态,确定所述工作线程的优先级;
所述应用程序按照预设时间片,根据所述工作线程的优先级,执行所述工作线程,以使得所述工作线程按照所述当前推送速率,向所述界面线程推送消息。
3.根据权利要求2所述的方法,其特征在于,所述监控线程根据所述界面线程的当前状态,确定所述工作线程的优先级的步骤,包括:
所述监控线程确定所述工作线程的优先级状态是否为已调整状态;
若所述工作线程的优先级状态为已调整状态,且所述界面线程的当前状态为空闲状态,则所述监控线程将所述工作线程的优先级设置为第一优先级,将所述工作线程的优先级状态设置为未调整状态;
若所述工作线程的优先级状态为未调整状态,且所述界面线程的当前状态为非空闲状态,则所述监控线程根据所述工作线程的属性特征,将所述工作线程的优先级设置为第二优先级,将所述工作线程的优先级状态设置为已调整状态,所述第二优先级高于所述第一优先级。
4.根据权利要求1所述的方法,其特征在于,所述应用程序的工作线程根据所述界面线程的当前状态,以及界面线程状态与推送速率的对应关系,确定当前推送速率的步骤,包括:
若所述界面线程的当前状态为空闲状态,则所述应用程序的工作线程根据界面线程状态与推送速率的对应关系,确定当前推送速率为第一推送速率;
若所述界面线程的当前状态为非空闲状态,则所述工作线程根据界面线程状态与推送速率的对应关系,确定当前推送速率为第二推送速率;
其中,所述第一推送速率大于所述第二推送速率。
5.一种消息推送装置,其特征在于,包括:
第一获取模块,用于应用程序的监控线程按照预设时间间隔,获取所述应用程序的界面线程的中央处理单元CPU使用率;
第一确定模块,用于所述监控线程根据所述CPU使用率,确定所述界面线程的当前状态;
第二确定模块,用于所述应用程序的工作线程根据所述界面线程的当前状态,以及界面线程状态与推送速率的对应关系,确定当前推送速率;
第一推送模块,用于所述工作线程按照所述当前推送速率,向所述界面线程推送消息。
6.根据权利要求5所述的装置,其特征在于,所述装置还包括:
第三确定模块,用于所述监控线程根据所述监控线程的当前状态,确定所述工作线程的优先级;
第二获取模块,用于所述应用程序按照预设时间片,根据所述工作线程的优先级,执行所述工作线程,以使得所述工作线程按照所述当前推送速率,向所述界面线程推送消息。
7.根据权利要求6所述的装置,其特征在于,所述第三确定模块,具体用于所述监控线程确定所述工作线程的优先级状态是否为已调整状态;若所述工作线程的优先级状态为已调整状态,且所述界面线程的当前状态为空闲状态,则所述监控线程将所述工作线程的优先级设置为第一优先级,将所述工作线程的优先级状态设置为未调整状态;若所述工作线程的优先级为未调整状态,且所述界面线程的当前状态为非空闲状态,则所述监控线程根据所述工作线程的属性特征,将所述工作线程的优先级设置为第二优先级,将所述工作线程的优先级状态设置为已调整状态,所述第二优先级高于所述第一优先级。
8.根据权利要求5所述的装置,其特征在于,所述第二确定模块,具体用于若所述界面线程的当前状态为空闲状态,则所述应用程序的工作线程根据界面线程状态与推送速率的对应关系,确定当前推送速率为第一推送速率;若所述界面线程的当前状态为非空闲状态,则所述工作线程根据界面线程状态与推送速率的对应关系,确定当前推送速率为第二推送速率;其中,所述第一推送速率大于所述第二推送速率。
9.一种电子设备,其特征在于,包括处理器、通信接口、存储器和通信总线,其中,处理器,通信接口,存储器通过通信总线完成相互间的通信;
存储器,用于存放计算机程序;
处理器,用于执行存储器上所存放的程序时,实现权利要求1-4任一所述的方法步骤。
10.一种计算机可读存储介质,其特征在于,所述计算机可读存储介质内存储有计算机程序,所述计算机程序被处理器执行时实现权利要求1-4任一所述的方法步骤。
CN201910146910.3A 2019-02-27 2019-02-27 一种消息推送方法、装置、电子设备及存储介质 Active CN111625370B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN201910146910.3A CN111625370B (zh) 2019-02-27 2019-02-27 一种消息推送方法、装置、电子设备及存储介质

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN201910146910.3A CN111625370B (zh) 2019-02-27 2019-02-27 一种消息推送方法、装置、电子设备及存储介质

Publications (2)

Publication Number Publication Date
CN111625370A CN111625370A (zh) 2020-09-04
CN111625370B true CN111625370B (zh) 2023-10-10

Family

ID=72272422

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201910146910.3A Active CN111625370B (zh) 2019-02-27 2019-02-27 一种消息推送方法、装置、电子设备及存储介质

Country Status (1)

Country Link
CN (1) CN111625370B (zh)

Families Citing this family (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN112464095B (zh) * 2020-12-01 2024-05-14 Oppo(重庆)智能科技有限公司 消息推送方法、装置、终端及存储介质

Citations (12)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CA2588771A1 (en) * 2000-04-10 2001-10-10 Research In Motion Limited Notification system and method for a mobile data communication device
CN102892089A (zh) * 2012-09-25 2013-01-23 中国联合网络通信集团有限公司 消息推送处理方法、装置和***
CN103164267A (zh) * 2013-03-29 2013-06-19 汉柏科技有限公司 无锁消息队列实现方法
CN103428290A (zh) * 2013-08-19 2013-12-04 北京网秦天下科技有限公司 数据推送方法和设备
CN105740326A (zh) * 2016-01-21 2016-07-06 腾讯科技(深圳)有限公司 浏览器的线程状态监测方法及装置
CN105897550A (zh) * 2015-12-23 2016-08-24 乐视致新电子科技(天津)有限公司 一种推送离线消息的方法及设备
CN105930208A (zh) * 2016-04-01 2016-09-07 广州华多网络科技有限公司 一种线程调度方法及线程调度装置
US9513961B1 (en) * 2014-04-02 2016-12-06 Google Inc. Monitoring application loading
CN106445769A (zh) * 2015-08-11 2017-02-22 腾讯科技(深圳)有限公司 计算机运行监测方法、装置和***
CN106681913A (zh) * 2016-12-08 2017-05-17 武汉斗鱼网络科技有限公司 一种应用卡顿定位***及方法
CN107222537A (zh) * 2017-05-31 2017-09-29 努比亚技术有限公司 推送消息的方法、移动终端和存储介质
CN107273278A (zh) * 2017-06-02 2017-10-20 广东欧珀移动通信有限公司 卡顿确定方法、装置及终端

Family Cites Families (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7752279B2 (en) * 2007-05-29 2010-07-06 Research In Motion Limited System for facilitating thread-based message prioritization
US8375400B2 (en) * 2011-02-11 2013-02-12 Research In Motion Limited Communication device and method for coherent updating of collated message listings
US9389936B2 (en) * 2011-09-23 2016-07-12 Microsoft Technology Licensing, Llc. Monitoring the responsiveness of a user interface
US9535768B2 (en) * 2012-07-16 2017-01-03 Sony Corporation Managing multi-threaded operations in a multimedia authoring environment

Patent Citations (12)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CA2588771A1 (en) * 2000-04-10 2001-10-10 Research In Motion Limited Notification system and method for a mobile data communication device
CN102892089A (zh) * 2012-09-25 2013-01-23 中国联合网络通信集团有限公司 消息推送处理方法、装置和***
CN103164267A (zh) * 2013-03-29 2013-06-19 汉柏科技有限公司 无锁消息队列实现方法
CN103428290A (zh) * 2013-08-19 2013-12-04 北京网秦天下科技有限公司 数据推送方法和设备
US9513961B1 (en) * 2014-04-02 2016-12-06 Google Inc. Monitoring application loading
CN106445769A (zh) * 2015-08-11 2017-02-22 腾讯科技(深圳)有限公司 计算机运行监测方法、装置和***
CN105897550A (zh) * 2015-12-23 2016-08-24 乐视致新电子科技(天津)有限公司 一种推送离线消息的方法及设备
CN105740326A (zh) * 2016-01-21 2016-07-06 腾讯科技(深圳)有限公司 浏览器的线程状态监测方法及装置
CN105930208A (zh) * 2016-04-01 2016-09-07 广州华多网络科技有限公司 一种线程调度方法及线程调度装置
CN106681913A (zh) * 2016-12-08 2017-05-17 武汉斗鱼网络科技有限公司 一种应用卡顿定位***及方法
CN107222537A (zh) * 2017-05-31 2017-09-29 努比亚技术有限公司 推送消息的方法、移动终端和存储介质
CN107273278A (zh) * 2017-06-02 2017-10-20 广东欧珀移动通信有限公司 卡顿确定方法、装置及终端

Non-Patent Citations (3)

* Cited by examiner, † Cited by third party
Title
Leanne G.Morrison等.The Effect of Timing and Frequency of Push Notification on Usgae of a Smartphone-Based Stress Management Intervention:An Exploratory Trial.《Plos One》.2017,第12卷(第1期),全文. *
Web应用中的服务器推送技术研究综述;孙清国;朱玮;刘华军;张鹏;;计算机***应用(11);全文 *
基于MQTT协议的信息推送平台***的设计与实现;杨鹏;《中国优秀硕士学位论文全文数据库 信息科技辑》;第I138-4801页 *

Also Published As

Publication number Publication date
CN111625370A (zh) 2020-09-04

Similar Documents

Publication Publication Date Title
CN110213068B (zh) 一种消息中间件的监控方法及相关设备
WO2020093637A1 (zh) 设备状态预测方法、***、计算机装置及存储介质
US20170091013A1 (en) Pcie error reporting and throttling
CN113285883A (zh) 一种访问请求的限流方法及装置、电子设备、存储介质
CN108737132B (zh) 一种告警信息处理方法及装置
CN109800204B (zh) 数据分配方法及相关产品
CN112148505A (zh) 数据跑批***、方法、电子设备和存储介质
JP2012521042A (ja) ウェブフロントエンドスロットリング
CN108390856B (zh) 一种DDoS攻击检测方法、装置及电子设备
CN111988240B (zh) 一种数据发送方法、装置、电子设备及存储介质
CN112383585A (zh) 消息处理***、方法及电子设备
CN114448989B (zh) 调整消息分发的方法、装置、电子设备、存储介质及产品
US10783005B2 (en) Component logical threads quantity adjustment method and device
CN111625370B (zh) 一种消息推送方法、装置、电子设备及存储介质
CN112367384A (zh) 基于Kafka集群的动态限速方法、装置以及计算机设备
CN112838980B (zh) 一种消息处理方法、***、装置、电子设备及存储介质
CN114285844A (zh) 服务器接口智能熔断的方法、装置、电子设备及存储介质
CN112887407A (zh) 用于分布式集群的作业流量控制方法和装置
CN110795239A (zh) 应用内存泄露的检测方法及装置
CN116055401A (zh) 一种消息处理方法、装置、设备及存储介质
CN113835905B (zh) 一种消息队列负载均衡方法、装置、电子设备及介质
CN111953569B (zh) 状态信息上报方法、装置、设备及介质
CN111431764B (zh) 节点确定方法、设备、***及介质
CN116016276A (zh) 服务器健康状态检测方法和装置
CN112235630A (zh) 一种数据备份传输方法、led网状环路备份***及电子设备

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