掌桥专利:专业的专利平台
掌桥专利
首页

基于门禁处理器的消息推送方法以及门禁控制系统

文献发布时间:2023-06-19 13:46:35


基于门禁处理器的消息推送方法以及门禁控制系统

技术领域

本发明涉及在门禁管理领域,尤其涉及一种基于门禁处理器的消息推送方法以及门禁控制系统。

背景技术

门禁系统在智能建筑领域,简称ACS,指门的禁止权限,这里的门,广义来说,包括能够通行的各种通道,包括人通行的门,车辆通行的门等。因此,门禁就包括了车辆门禁,在车场管理应用中,车辆门禁是车辆管理的一种重要手段,不以收取停车费为目的,主要是管理车辆进出权限,出入口门禁安全管理系统是新型现代化安全管理系统,它集微机自动识别技术和现代安全管理措施为一体,它涉及电子,机械,光学,计算机技术,通讯技术,生物技术等诸多新技术,它是解决重要部门出入口实现安全防范管理的有效措施。适用各种机要部门,如银行、宾馆、车场管理、机房、军械库、机要室、办公间,智能化小区,工厂等,门禁系统早已超越了单纯的门道及钥匙管理,它已经逐渐发展成为一套完整的出入管理系统,它在工作环境安全、人事考勤管理等行政管理工作中发挥着较大的作用。

随着科技的发展和技术的进步,用于控制门、道闸等通道进出管理器件的门禁控制器被大量应用在人们的日常生活中。为了实现对门禁控制器的统一管理,使用单个门禁处理器控制大量的门禁控制器。这些门禁控制器会实时将产生的事件发送给门禁处理器,门禁处理器对每个控制器推送的事件并行发送到消息队列进行处理,如果按照控制器数量不做限制的并行发送,那么控制器越多,门禁处理器需要开启的线程越多,很容易超过门禁处理器自身的处理能力,造成门禁处理器卡顿,不能正常工作,为了解决这个问题,现有技术采用限制连接的门禁控制器数量或者增加门禁处理器数量以及使用高性能门禁处理器,这些方式增加了门禁的安装成本和使用成本,降低了用户体验。

发明内容

为了克服现有技术的不足,本发明提出一种基于门禁处理器的消息推送方法以及门禁控制系统,根据门禁处理器的核心数和预设压力值获取并行值,利用并行值生成消息缓存队列,使门禁控制器映射一个固定的消息缓存队列,将该门禁控制器的事件信息推送到该消息缓存队列进行处理,能够避免线程不断增加,超过门禁处理器处理能力造成其卡顿的问题,并且能够控制大量门禁控制器,无需设置新设备,降低了安装成本和使用成本,提高了用户体验。

为解决上述问题,本发明采用的一个技术方案为:一种基于门禁处理器的消息推送方法,所述基于门禁处理器的消息推送方法包括:S101:根据门禁处理器的核心数和预设压力值获取所述门禁处理器的并行值,基于所述并行值生成消息缓存队列,其中,每个门禁控制器映射一个消息缓存队列;S102:接收所述门禁控制器发送的事件信息,获取所述门禁控制器映射的消息缓存队列,并将所述事件信息推送到所述消息缓存队列。

进一步地,所述根据门禁处理器的核心数和预设压力值获取所述门禁处理器的并行值的步骤具体包括:根据所述核心数与预设压力值的乘积获取并行值。

进一步地,所述并行值等于所述消息缓存队列的总数。

进一步地,基于所述并行值生成消息缓存队列的步骤具体包括:控制缓冲区映射根据所述并行值生成消息缓存队列,并使每个消息缓存队列由不同的线程处理。

进一步地,将所述事件信息推送到所述消息缓存队列的步骤之后还包括:根据所述事件信息推送到所述消息缓存队列的顺序消费所述事件信息,并将消费后的事件信息发送到下一个处理流程。

基于相同的发明构思,本发明还提出一种门禁控制系统,门禁控制系统包括门禁处理器、多个门禁控制器,所述门禁处理器与所述门禁控制器通信连接,所述门禁控制系统通过所述门禁处理器实现如下所述的基于门禁处理器的消息推送方法:S201:根据门禁处理器的核心数和预设压力值获取所述门禁处理器的并行值,基于所述并行值生成消息缓存队列,其中,每个门禁控制器映射一个消息缓存队列;S202:接收所述门禁控制器发送的事件信息,获取所述门禁控制器映射的消息缓存队列,并将所述事件信息推送到所述消息缓存队列。

进一步地,所述根据门禁处理器的核心数和预设压力值获取所述门禁处理器的并行值的步骤具体包括:根据所述核心数与预设压力值的乘积获取并行值。

进一步地,所述并行值等于所述消息缓存队列的总数。

进一步地,基于所述并行值生成消息缓存队列的步骤具体包括:控制缓冲区映射根据所述并行值生成消息缓存队列,并使每个消息缓存队列由不同的线程处理。

进一步地,将所述事件信息推送到所述消息缓存队列的步骤之后还包括:根据所述事件信息推送到所述消息缓存队列的顺序消费所述事件信息,并将消费后的事件信息发送到下一个处理流程。

相比现有技术,本发明的有益效果在于:根据门禁处理器的核心数和预设压力值获取并行值,利用并行值生成消息缓存队列,使门禁控制器映射一个固定的消息缓存队列,将该门禁控制器的事件信息推送到该消息缓存队列进行处理,能够避免线程不断增加,超过门禁处理器处理能力造成其卡顿的问题,并且能够控制大量门禁控制器,无需设置新设备,降低了安装成本和使用成本,提高了用户体验。

附图说明

图1为本发明基于门禁处理器的消息推送方法一实施例的流程图;

图2为本发明基于门禁处理器的消息推送方法另一实施例的流程图;

图3为本发明门禁控制系统一实施例的结构图;

图4为本发明门禁控制系统执行的基于门禁处理器的消息推送方法一实施例的结构图。

具体实施方式

下面,结合附图以及具体实施方式,对本发明做进一步描述,需要说明的是,在不相冲突的前提下,以下描述的各实施例之间或各技术特征之间可以任意组合形成新的实施例。

请参阅图1-2,图1为本发明基于门禁处理器的消息推送方法一实施例的流程图;图2为本发明基于门禁处理器的消息推送方法另一实施例的流程图。结合图1-2对本发明基于门禁处理器的消息推送方法进行详细说明。

在本实施例中,基于门禁处理器的消息推送方法包括:

S101:根据门禁处理器的核心数和预设压力值获取门禁处理器的并行值,基于并行值生成消息缓存队列,其中,每个门禁控制器映射一个消息缓存队列。

在本实施例中,根据门禁处理器的核心数和预设压力值获取门禁处理器的并行值的步骤具体包括:根据核心数与预设压力值的乘积获取并行值。预设压力值的具体数值可根据门禁处理器的性能以及实际情况进行具体设置,在此不做限定。

在一个具体的实施例中,并行值=核心数*预设压力值。

在本实施例中,门禁处理器为CPU,在其他实施例中,门禁处理器还可以为SOC、DSP、MCU以及其他能够并发处理信息的智能芯片。

在本实施例中,并行值等于消息缓存队列的总数。基于并行值生成消息缓存队列的步骤具体包括:控制缓冲区映射根据并行值生成消息缓存队列,并使每个消息缓存队列由不同的线程处理。其中,消息缓存队列放在一个线程安全的并发字典中。

为了实现对门禁控制器的并行控制以及保证同一个控制器的事件信息的时间顺序一致。每个门禁控制器映射一个固定的消息缓存队列。

S102:接收门禁控制器发送的事件信息,获取门禁控制器映射的消息缓存队列,并将事件信息推送到消息缓存队列。

在本实施例中,门禁处理器与门禁控制器可以通过物联网、3G、4G、WiFi以及其他通信方式连接。门禁控制器识别到密码输入、刷卡操作等事件时,将相应的事件信息以无线传输或有线传输的方式发送给门禁处理器。

门禁处理器接收到事件信息后,识别发送该事件信息的门禁控制器,进而通过并发字典获取该门禁控制器映射的消息缓存队列,将该事件信息推送到该消息缓存队列。

在其他实施例中,也可以不将门禁控制器映射一个固定的消息缓存队列,门禁处理器接收的事件信息后,标记该事件信息对应的门禁控制器、接收时间,并获取每个消息缓存队列中的事件信息数量,将事件信息推送到事件信息最少或低于预设值消息缓存队列中,从而实现事件信息的均衡分配。

在本实施例中,将事件信息推送到消息缓存队列的步骤之后还包括:根据事件信息推送到消息缓存队列的顺序消费所述事件信息,并将消费后的事件信息发送到下一个处理流程。

在一个具体的实施例中,在事件信息处理完毕后,门禁处理器的缓存区消费线程实时监控缓冲区的消息缓存队列的数据变化,一旦有新的事件信息被推送到消息缓存队列,则立即处理该事件信息。

在上述实施例中,门禁处理器还监测门禁控制器的增减情况,若发现有门禁控制器断开与门禁处理器的连接或关闭,则剔除该门禁控制器与消息缓存队列的映射。若有新的门禁控制器加入,则获取每个消息缓存队列映射的门禁控制器数量,将该新的门禁控制器映射至映射的门禁控制器数量最少或低于预设值的消息缓存队列中,以均衡分配每个消息缓存队列映射的门禁控制器数量。

在其他实施例中,当其中一个或多个消息缓存队列映射的门禁控制器数量低于预设数值时,还可以重新分配每个消息缓存队列映射的门禁控制器数量。

下面以基于门禁处理器的消息推送方法的相关执行程序对该消息推送方法做进一步说明。

上述程序的设计思路如下:

1.程序启动时,获取Cpu核心数和配置的压力值;

2.计算并行值(Cpu核心数*压力值),按并行值循环创建线程;

3.每个线程生成一个线程安全的消息缓存队列,并自动消费该消息缓存队列,该消息缓存队列缓存在一个线程安全的并发字典中,以便与门禁控制器映射;

4.另启一个监听控制器的线程(实际在程序启动时,已在其他流程启动),注册该线程的回调事件,在门禁控制器增减时,将控制器与步骤3的并发字典映射。

5.事件接收线程,在接收到控制器事件时,根据事件来源的门禁控制器,自动将事件入队到关联的消息缓存队列。

6.队列处理线程监听到队列消息后,主动消费,并发送到下一处理流程。

有益效果:本发明基于门禁处理器的消息推送方法根据门禁处理器的核心数和预设压力值获取并行值,利用并行值生成消息缓存队列,使门禁控制器映射一个固定的消息缓存队列,将该门禁控制器的事件信息推送到该消息缓存队列进行处理,能够避免线程不断增加,超过门禁处理器处理能力造成其卡顿的问题,并且能够控制大量门禁控制器,无需设置新设备,降低了安装成本和使用成本,提高了用户体验。

基于相同的发明构思,本发明又提出一种门禁控制系统,请查阅图3、4,图3为本发明门禁控制系统一实施例的结构图;图4为本发明门禁控制系统执行的基于门禁处理器的消息推送方法一实施例的结构图。结合图3、4对本发明的门禁控制系统进行说明。

在本实施例中,门禁控制系统包括门禁处理器、多个门禁控制器,门禁处理器与门禁控制器通信连接,门禁控制系统通过门禁处理器实现如下所述的基于门禁处理器的消息推送方法。

S201:根据门禁处理器的核心数和预设压力值获取门禁处理器的并行值,基于并行值生成消息缓存队列,其中,每个门禁控制器映射一个消息缓存队列。

在本实施例中,根据门禁处理器的核心数和预设压力值获取门禁处理器的并行值的步骤具体包括:根据核心数与预设压力值的乘积获取并行值。预设压力值的具体数值可根据门禁处理器的性能以及实际情况进行具体设置,在此不做限定。

在一个具体的实施例中,并行值=核心数*预设压力值。

在本实施例中,门禁处理器为CPU,在其他实施例中,门禁处理器还可以为SOC、DSP、MCU以及其他能够并发处理信息的智能芯片。

在本实施例中,并行值等于消息缓存队列的总数。基于并行值生成消息缓存队列的步骤具体包括:控制缓冲区映射根据并行值生成消息缓存队列,并使每个消息缓存队列由不同的线程处理。其中,消息缓存队列放在一个线程安全的并发字典中。

为了实现对门禁控制器的并行控制以及保证同一个控制器的事件信息的时间顺序一致。每个门禁控制器映射一个固定的消息缓存队列。

S202:接收门禁控制器发送的事件信息,获取门禁控制器映射的消息缓存队列,并将事件信息推送到消息缓存队列。

在本实施例中,门禁处理器与门禁控制器可以通过物联网、3G、4G、WiFi以及其他通信方式连接。门禁控制器识别到密码输入、刷卡操作等事件时,将相应的事件信息以无线传输或有线传输的方式发送给门禁处理器。

门禁处理器接收到事件信息后,识别发送该事件信息的门禁控制器,进而通过并发字典获取该门禁控制器映射的消息缓存队列,将该事件信息推送到该消息缓存队列。

在其他实施例中,也可以不将门禁控制器映射一个固定的消息缓存队列,门禁处理器接收的事件信息后,标记该事件信息对应的门禁控制器、接收时间,并获取每个消息缓存队列中的事件信息数量,将事件信息推送到事件信息最少或低于预设值消息缓存队列中,从而实现事件信息的均衡分配。

在本实施例中,将事件信息推送到消息缓存队列的步骤之后还包括:根据事件信息推送到消息缓存队列的顺序消费所述事件信息,并将消费后的事件信息发送到下一个处理流程。

在一个具体的实施例中,在事件信息处理完毕后,门禁处理器的缓存区消费线程实时监控缓冲区的消息缓存队列的数据变化,一旦有新的事件信息被推送到消息缓存队列,则立即处理该事件信息。

在上述实施例中,门禁处理器还监测门禁控制器的增减情况,若发现有门禁控制器断开与门禁处理器的连接或关闭,则剔除该门禁控制器与消息缓存队列的映射。若有新的门禁控制器加入,则获取每个消息缓存队列映射的门禁控制器数量,将该新的门禁控制器映射至映射的门禁控制器数量最少或低于预设值的消息缓存队列中,以均衡分配每个消息缓存队列映射的门禁控制器数量。

在其他实施例中,当其中一个或多个消息缓存队列映射的门禁控制器数量低于预设数值时,还可以重新分配每个消息缓存队列映射的门禁控制器数量。

下面以基于门禁处理器的消息推送方法的相关执行程序对该消息推送方法做进一步说明。

上述程序的设计思路如下:

2.程序启动时,获取Cpu核心数和配置的压力值;

2.计算并行值(Cpu核心数*压力值),按并行值循环创建线程;

3.每个线程生成一个线程安全的消息缓存队列,并自动消费该消息缓存队列,该消息缓存队列缓存在一个线程安全的并发字典中,以便与门禁控制器映射;

4.另启一个监听控制器的线程(实际在程序启动时,已在其他流程启动),注册该线程的回调事件,在门禁控制器增减时,将控制器与步骤3的并发字典映射。

5.事件接收线程,在接收到控制器事件时,根据事件来源的门禁控制器,自动将事件入队到关联的消息缓存队列。

6.队列处理线程监听到队列消息后,主动消费,并发送到下一处理流程。

在本发明所提供的实施例中,应该理解到,所揭露的装置/终端和方法,可以通过其他的方式实现。例如,以上所描述的装置/终端实施例仅仅是示意性的,例如,所述模块或单元的划分,仅仅为一种逻辑功能划分,实际实现时可以有另外的划分方式,例如多个单元或组件可以结合或者可以集成到另一个存储装置,或一些特征可以忽略,或不执行。另一点,所显示或讨论的相互之间的耦合或直接耦合或通讯连接可以是通过一些码,装置或单元的间接耦合或通讯连接,可以是电性,机械或其他的形式。

所述作为分离部件说明的单元可以是或者也可以不是物理上分开的,作为单元显示的部件可以是或者也可以不是物理单元,即可以位于一个地方,或者也可以分布到多个网络单元上。可以根据实际的需要选择其中的部分或者全部单元来实现本实施例方案的目的。

所述集成的模块如果以软件功能单元的形式实现并作为独立地产品销售或使用时,可以存储在一个计算机可读取存储介质中。基于这样的理解,本发明实现上述实施例方法中的全部或部分流程,也可以通过计算机程序来指令相关的硬件来完成,所述的程序数据可存储于一计算机可读存储介质中,该计算机程序在被执行时,可实现上述各个方法实施例的步骤。其中,所述程序数据包括计算机程序代码,所述计算机程序代码可以为源代码形式、对象代码形式、可执行文件或某些中间形式等。所述计算机可读介质可以包括:能够携带所述计算机程序代码的任何实体或装置、记录介质、U盘、移动硬盘、磁碟、光盘、计算机存储器、只读存储器(ROM,Read-OnlyMemory)、随机存取存储器(RAM,RandomAccessMemory)、电载波信号、电信号以及软件分发介质等。需要说明的是,所述计算机可读介质包含的内容可以根据司法管辖区内立法和专利实践的要求进行适当的增减,例如在某些司法管辖区,根据立法和专利实践,计算机可读介质不包括是电载波信号和电信号。

本说明书中各个实施例采用递进的方式描述,每个实施例重点说明的都是与其他实施例的不同之处,各个实施例之间相同相似部分互相参见即可。

对所公开的实施例的上述说明,使本领域专业技术人员能够实现或使用本发明。对这些实施例的多种修改对本领域的专业技术人员来说将是显而易见的,本文中所定义的一般原理可以在不脱离本发明的精神或范围的情况下,在其他实施例中实现。因此,本发明将不会被限制于本文所示的这些实施例,而是要符合与本文所公开的原理和新颖特点相一致的最宽的范围。

技术分类

06120113806425