一种多线程事件生产消费方法、系统、设备和存储介质技术方案

技术编号:32970853 阅读:16 留言:0更新日期:2022-04-09 11:37
本发明专利技术实施例提供了一种多线程事件生产消费方法、系统、设备和存储介质,其中,方法包括:生产者模块根据预设创建事件规则,生成携带有优先级的待消费事件,并根据预设事件添加策略,对优先级不大于第一预设阈值的待消费事件,逐一执行加入消息队列操作,消费者模块监测到加入消息队列操作执行完毕时,判断消息队列中的待消费事件的数量是否等于第一数量,若是,则遍历消息队列中的第一数量个待消费事件,逐个对第一数量个待消费事件执行消费操作,消费者模块在监测到消息队列中的第一数量个待消费事件被全部消费时,清空消息队列,并监测清空后的消息队列,是否发生加入消息队列操作。本发明专利技术实现了提高业务开发效率的发明专利技术目的。的。的。

【技术实现步骤摘要】
一种多线程事件生产消费方法、系统、设备和存储介质


[0001]本专利技术涉及程序开发设计领域,特别是涉及一种多线程事件生产消费方法、系统、设备和存储介质。

技术介绍

[0002]在进行移动端程序开发的过程中,不可避免的会产生埋点、日志记录和性能打点等操作。目前实现上述操作的方式,是直接将上述操作的程序直接写入正在运行业务的主线程中。由于主线程中存在正在运行的业务,当执行上述操作时,会对主线程造成阻塞,从而导致正在运行的业务出现卡顿,进而影响正常业务的开发效率。

技术实现思路

[0003]本专利技术实施例的目的在于提供一种多线程事件生产消费方法、系统、设备和存储介质,以实现提高业务开发效率的专利技术目的。具体技术方案如下:
[0004]一种多线程事件生产消费方法,所述方法包括:
[0005]生产者模块根据预设创建事件规则,生成携带有优先级的待消费事件,并根据预设事件添加策略,对所述优先级不大于第一预设阈值的所述待消费事件,逐一执行加入消息队列操作,其中,所述生产者模块部署于多个事件生成线程中。
[0006]消费者模块监测到所述加入消息队列操作执行完毕时,判断所述消息队列中的所述待消费事件的数量是否等于第一数量,若是,则遍历所述消息队列中的所述第一数量个待消费事件,逐个对所述第一数量个待消费事件执行消费操作,其中,所述第一数量为所述消息队列的最大容量,所述消费者模块固定部署于一个事件监测线程中,所述消费操作,具体包括:向观察者模块发送事件消费指令,以使所述观察者模块响应于所述事件消费指令,在不占用所述事件监测线程的情况下,对所述待消费事件进行消费。
[0007]所述消费者模块在监测到所述消息队列中的所述第一数量个待消费事件被全部消费时,清空所述消息队列,并监测所述清空后的消息队列,是否发生所述加入消息队列操作。
[0008]可选的,在所述消费者模块监测到所述加入消息队列操作执行完毕时,判断所述消息队列中的所述待消费事件的数量小于第一数量时,所述方法还包括:
[0009]所述消费者模块向所述生产者模块发送添加事件指令,以使所述生产者模块响应于所述添加事件指令,执行所述加入消息队列操作。
[0010]可选的,所述方法还包括:
[0011]在所述消费者模块向所述生产者模块发送所述添加事件指令后,判断所述消息队列的监控时长是否大于第二预设阈值,若是,则遍历所述消息队列中的第二数量个待消费事件,逐个对所述第二数量个待消费事件执行所述消费操作,其中,所述第二数量小于所述第一数量。
[0012]可选的,所述生产者模块根据预设创建事件规则,生成携带有优先级的待消费事
件,并根据预设事件添加策略,对所述优先级不大于第一预设阈值的所述待消费事件,逐一执行加入消息队列操作,包括:
[0013]所述生产者模块根据预设创建事件规则,生成多个携带有优先级的所述待消费事件。
[0014]判断所述消息队列中的所述待消费事件的数量是否小于所述第一数量,若是,则将所述优先级不大于第一预设阈值的所述待消费事件,逐一加入到所述消息队列中。
[0015]可选的,在所述判断所述消息队列中的所述待消费事件的数量是否小于所述第一数量之前,还包括:
[0016]所述生产者模块遍历所述待消费事件,将所述优先级大于所述第一预设阈值的所述待消费事件确定为优先消费事件,并对所述优先消费事件执行即时消费操作,其中,所述即时消费操作,具体包括:所述生产者模块向所述消费者模块发送即时消费请求,以使所述消费者模块对所述即时消费请求中的所述优先消费事件,执行所述消费操作。
[0017]可选的,所述判断所述消息队列中的所述待消费事件的数量是否小于所述第一数量,还包括:
[0018]在所述生产者模块判断所述消息队列中的所述待消费事件的数量,不小于所述第一数量时,对所述优先级不大于第一预设阈值的所述待消费事件,执行所述即时消费操作。
[0019]可选的,所述消费者模块执行所述消费操作,向观察者模块发送事件消费指令,以使所述观察者模块响应于所述事件消费指令,对所述待消费事件进行消费,包括:
[0020]所述消费者模块执行所述消费操作,向观察者模块发送事件消费指令,以使所述观察者模块响应于所述事件消费指令,控制观察者模块中处于多个线程的多个观察者,按照预设消费规则对所述待消费事件进行消费,其中,每个所述待消费事件均对应多个所述观察者。
[0021]一种多线程事件生产消费系统,所述系统包括:消费者模块、生成者模块和观察者模块,
[0022]生产者模块根据预设创建事件规则,生成携带有优先级的待消费事件,并根据预设事件添加策略,对所述优先级不大于第一预设阈值的所述待消费事件,逐一执行加入消息队列操作,其中,所述生产者模块部署于多个事件生成线程中。
[0023]消费者模块监测到所述加入消息队列操作执行完毕时,判断所述消息队列中的所述待消费事件的数量是否等于第一数量,若是,则遍历所述消息队列中的所述第一数量个待消费事件,逐个对所述第一数量个待消费事件执行消费操作,其中,所述第一数量为所述消息队列的最大容量,所述消费者模块固定部署于一个事件监测线程中,所述消费操作,具体包括:向观察者模块发送事件消费指令,以使所述观察者模块响应于所述事件消费指令,在不占用所述事件监测线程的情况下,对所述待消费事件进行消费。
[0024]所述消费者模块在监测到所述消息队列中的所述第一数量个待消费事件被全部消费时,清空所述消息队列,并监测所述清空后的消息队列,是否发生所述加入消息队列操作。
[0025]可选的,所述消费者模块还被配置为:
[0026]向所述生产者模块发送添加事件指令,以使所述生产者模块响应于所述添加事件指令,执行所述加入消息队列操作。
[0027]可选的,所述消费者模块还被配置为:
[0028]在所述消费者模块向所述生产者模块发送所述添加事件指令后,判断所述消息队列的监控时长是否大于第二预设阈值,若是,则遍历所述消息队列中的第二数量个待消费事件,逐个对所述第二数量个待消费事件执行所述消费操作,其中,所述第二数量小于所述第一数量。
[0029]可选的,所述生产者模块被具体配置为:
[0030]根据预设创建事件规则,生成多个携带有优先级的所述待消费事件。
[0031]判断所述消息队列中的所述待消费事件的数量是否小于所述第一数量,若是,则将所述优先级不大于第一预设阈值的所述待消费事件,逐一加入到所述消息队列中。
[0032]可选的,所述生产者模块还被配置为:
[0033]遍历所述待消费事件,将所述优先级大于所述第一预设阈值的所述待消费事件确定为优先消费事件,并对所述优先消费事件执行即时消费操作,其中,所述即时消费操作,具体包括:所述生产者模块向所述消费者模块发送即时消费请求,以使所述消费者模块对所述即时消费请求中的所述优先消费事件,执行所述消费操作。
[0034]可选的,所述生产者模块还被配置为:本文档来自技高网
...

【技术保护点】

【技术特征摘要】
1.一种多线程事件生产消费方法,其特征在于,所述方法包括:生产者模块根据预设创建事件规则,生成携带有优先级的待消费事件,并根据预设事件添加策略,对所述优先级不大于第一预设阈值的所述待消费事件,逐一执行加入消息队列操作,其中,所述生产者模块部署于多个事件生成线程中;消费者模块监测到所述加入消息队列操作执行完毕时,判断所述消息队列中的所述待消费事件的数量是否等于第一数量,若是,则遍历所述消息队列中的所述第一数量个待消费事件,逐个对所述第一数量个待消费事件执行消费操作,其中,所述第一数量为所述消息队列的最大容量,所述消费者模块固定部署于一个事件监测线程中,所述消费操作,具体包括:向观察者模块发送事件消费指令,以使所述观察者模块响应于所述事件消费指令,在不占用所述事件监测线程的情况下,对所述待消费事件进行消费;所述消费者模块在监测到所述消息队列中的所述第一数量个待消费事件被全部消费时,清空所述消息队列,并监测所述清空后的消息队列,是否发生所述加入消息队列操作。2.根据权利要求1所述的方法,其特征在于,在所述消费者模块监测到所述加入消息队列操作执行完毕时,判断所述消息队列中的所述待消费事件的数量小于第一数量时,所述方法还包括:所述消费者模块向所述生产者模块发送添加事件指令,以使所述生产者模块响应于所述添加事件指令,执行所述加入消息队列操作。3.根据权利要求2所述的方法,其特征在于,所述方法还包括:在所述消费者模块向所述生产者模块发送所述添加事件指令后,判断所述消息队列的监控时长是否大于第二预设阈值,若是,则遍历所述消息队列中的第二数量个待消费事件,逐个对所述第二数量个待消费事件执行所述消费操作,其中,所述第二数量小于所述第一数量。4.根据权利要求1所述的方法,其特征在于,所述生产者模块根据预设创建事件规则,生成携带有优先级的待消费事件,并根据预设事件添加策略,对所述优先级不大于第一预设阈值的所述待消费事件,逐一执行加入消息队列操作,包括:所述生产者模块根据预设创建事件规则,生成多个携带有优先级的所述待消费事件;判断所述消息队列中的所述待消费事件的数量是否小于所述第一数量,若是,则将所述优先级不大于第一预设阈值的所述待消费事件,逐一加入到所述消息队列中。5.根据权利要求4所述的方法,其特征在于,在所述判断所述消息队列中的所述待消费事件的数量是否小于所述第一数量之前,还包括:所述生产者模块遍历所述待消费事件,将所述优先级大于所述第一预设阈值的所述待消费事件确定为优先消费事件,并对所述优先消费事件执行即时消费操作...

【专利技术属性】
技术研发人员:赵宇薛潋苏衎
申请(专利权)人:湖南快乐阳光互动娱乐传媒有限公司
类型:发明
国别省市:

网友询问留言 已有0条评论
  • 还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。

1