数据推送方法、装置、服务平台及程序产品与流程
本技术涉及安防领域,尤其涉及一种数据推送方法、装置、服务平台及程序产品。
背景技术:
1、在安防监控系统中,网络摄像机(ipc)在检测到告警事件(如移动侦测、越界入侵等)时,会生成报警消息并抓拍现场图片。这两路数据通常通过网络异步上报至系统服务平台。服务平台根据用户预设的联动规则,需要将报警消息与对应的现场图片推送至用户的即时通讯工具,以实现告警的实时通知与现场画面的可视化呈现。
2、目前,为实现消息与图片的联动推送,通常在系统接收到报警消息后,等待对应图片的到来。如果在预设的超时时间内图片到达,则将消息与图片合并为一条完整的通知进行推送。如果网络环境不佳,消息和图片到达时间差可能超出预期,容易出现消息与图片错配,不利于提升消息推送的准确度。
技术实现思路
1、有鉴于此,本技术实施例提供了一种数据推送方法、装置、服务平台及程序产品,以解决现有技术中容易出现消息与图片错配,不利于提升消息推送的准确度的问题。
2、本技术实施例的第一方面提供了一种数据推送方法,所述方法包括:
3、接收第一告警数据,所述第一告警数据包括第一告警事件标识;
4、通过所述第一告警事件标识,在缓存数据中查询与所述第一告警事件标识匹配的第二告警数据,所述第一告警数据和所述第二告警数据为数据类型不同的数据;
5、将所述第一告警数据和所述第二告警数据合并推送。
6、在可能的实现方式中,所述第一告警数据为文本数据,所述第二告警数据为多媒体数据;
7、通过所述第一告警事件标识,在缓存数据中查询与所述第一告警事件标识匹配的第二告警数据,包括:
8、通过所述第一告警事件标识作为键,在缓存数据的键值对中,查询所述第一告警事件标识对应的值;
9、如果所述第一告警事件标识对应的值所包括的多媒体数据标识不为空,则确定所述多媒体数据标识对应的多媒体数据,为与所述第一告警事件标识匹配的第二告警数据。
10、在可能的实现方式中,在缓存数据的键值对中,查询所述第一告警事件标识对应的值之后,所述方法还包括:
11、如果所述第一告警事件标识对应的值所包括文本数据队列不为空,且多媒体数据标识为空,则确定之前缓存有文本数据且未缓存多媒体数据;
12、将当前接收的文本数据缓存至文本数据队列,根据当前文本数据的接收时间更新所述文本数据队列中的文本数据的缓存过期时间,并立即推送当前接收的文本数据。
13、在可能的实现方式中,在缓存数据的键值对中,查询所述第一告警事件标识对应的值之后,所述方法还包括:
14、如果所述第一告警事件标识对应的值为空,则确定之前未缓存有文本数据和多媒体数据;
15、将当前接收的文本数据缓存至文本数据队列,更新所述第一告警事件标识对应的键值对中的文本数据队列不为空,以及根据当前文本数据的接收时间更新所述文本数据队列中的文本数据的缓存过期时间。
16、在可能的实现方式中,所述第一告警数据为多媒体数据,所述第二告警数据为文本数据;
17、通过所述第一告警事件标识,在缓存数据中查询与所述第一告警事件标识匹配的第二告警数据,包括:
18、通过所述第一告警事件标识作为键,在缓存数据的键值对中,查询所述第一告警事件标识对应的值;
19、如果所述第一告警事件标识对应的值所包括的文本数据队列不为空,则确定所述文本数据队列中的文本数据,为与所述第一告警事件标识匹配的第二告警数据;
20、将所述第一告警数据和所述第二告警数据合并推送,包括:
21、遍历文本数据队列中的每条文本数据,逐条将所述文本数据与所述多媒体数据进行合并推送后,清空所述文本数据队列。
22、在可能的实现方式中,在缓存数据的键值对中,查询所述第一告警事件标识对应的值之后,所述方法还包括:
23、如果所述第一告警事件标识对应的值为空,则确定之前未缓存有文本数据和多媒体数据;
24、缓存当前接收的多媒体数据,并更新所述第一告警事件标识对应的键值对中的多媒体数据标识不为空,以及根据当前多媒体数据的接收时间更新所述多媒体数据过期时间。
25、在可能的实现方式中,在接收第一告警数据后,所述方法还包括:
26、以所述第一告警事件标识为粒度获取分布式锁;
27、根据所述分布式锁对所述第一告警事件标识对应的缓存数据执行目标操作后,释放所述第一告警事件标识为粒度的分布式锁,所述目标操作包括创建、更新、读取和清除操作中的至少一种。
28、第二方面,本技术实施例提供了一种数据推送装置,所述装置包括:
29、数据接收单元,用于接收第一告警数据,所述第一告警数据包括第一告警事件标识;
30、查询单元,用于通过所述第一告警事件标识,在缓存数据中查询与所述第一告警事件标识匹配的第二告警数据,所述第一告警数据和所述第二告警数据为数据类型不同的数据;
31、合并推送单元,用于将所述第一告警数据和所述第二告警数据合并推送。
32、在可能的实现方式中,所述第一告警数据为文本数据,所述第二告警数据为多媒体数据;
33、所述查询单元包括:
34、键值查询子单元,用于通过所述第一告警事件标识作为键,在缓存数据的键值对中,查询所述第一告警事件标识对应的值;
35、多媒体确定子单元,用于如果所述第一告警事件标识对应的值所包括的多媒体数据标识不为空,则确定所述多媒体数据标识对应的多媒体数据,为与所述第一告警事件标识匹配的第二告警数据。
36、在可能的实现方式中,所述装置还包括:
37、第一判断子单元,用于在所述键值查询子单元查询所述第一告警事件标识对应的值之后,如果所述第一告警事件标识对应的值所包括文本数据队列不为空,且多媒体数据标识为空,则确定之前缓存有文本数据且未缓存多媒体数据;
38、第一处理子单元,用于将当前接收的文本数据缓存至文本数据队列,根据当前文本数据的接收时间更新所述文本数据队列中的文本数据的缓存过期时间,并立即推送当前接收的文本数据。
39、在可能的实现方式中,所述装置还包括:
40、第二判断子单元,用于在所述键值查询子单元查询所述第一告警事件标识对应的值之后,如果所述第一告警事件标识对应的值为空,则确定之前未缓存有文本数据和多媒体数据;
41、第二处理子单元,用于将当前接收的文本数据缓存至文本数据队列,更新所述第一告警事件标识对应的键值对中的文本数据队列不为空,以及根据当前文本数据的接收时间更新所述文本数据队列中的文本数据的缓存过期时间。
42、在可能的实现方式中,所述第一告警数据为多媒体数据,所述第二告警数据为文本数据;
43、所述查询单元包括:
44、键值查询子单元,用于通过所述第一告警事件标识作为键,在缓存数据的键值对中,查询所述第一告警事件标识对应的值;
45、文本确定子单元,用于如果所述第一告警事件标识对应的值所包括的文本数据队列不为空,则确定所述文本数据队列中的文本数据,为与所述第一告警事件标识匹配的第二告警数据;
46、所述合并推送单元包括:
47、遍历推送子单元,用于遍历文本数据队列中的每条文本数据,逐条将所述文本数据与所述多媒体数据进行合并推送后,清空所述文本数据队列。
48、在可能的实现方式中,所述装置还包括:
49、第三判断子单元,用于在所述键值查询子单元查询所述第一告警事件标识对应的值之后,如果所述第一告警事件标识对应的值为空,则确定之前未缓存有文本数据和多媒体数据;
50、第三处理子单元,用于缓存当前接收的多媒体数据,并更新所述第一告警事件标识对应的键值对中的多媒体数据标识不为空,以及根据当前多媒体数据的接收时间更新所述多媒体数据过期时间。
51、在可能的实现方式中,所述装置还包括:
52、锁获取单元,用于在所述数据接收单元接收第一告警数据后,以所述第一告警事件标识为粒度获取分布式锁;
53、锁释放单元,用于根据所述分布式锁对所述第一告警事件标识对应的缓存数据执行目标操作后,释放所述第一告警事件标识为粒度的分布式锁,所述目标操作包括创建、更新、读取和清除操作中的至少一种。
54、本技术实施例的第三方面提供了一种服务平台,包括存储器、处理器以及存储在所述存储器中并可在所述处理器上运行的计算机程序,所述处理器执行所述计算机程序时,使得所述服务平台实现如第一方面任一项所述的方法。
55、本技术实施例的第四方面,提供了一种计算机程序产品,当其在计算机上运行时,使得计算机执行上述第一方面或其各实现方式中的方法。
56、本技术实施例的第五方面提供了一种计算机可读存储介质,所述计算机可读存储介质存储有计算机程序,所述计算机程序被处理器执行时实现如第一方面任一项所述方法的步骤。
57、本技术实施例的第六方面提供了一种芯片,用于实现上述第一方面中各实现方式中的方法。具体地,上述芯片包括:处理器,用于从存储器中调用并运行计算机程序,使得安装有上述芯片的设备执行如上述第一方面或其各实现方式中的方法。
58、本技术实施例与现有技术相比存在的有益效果是:本技术实施例通过在第一告警数据中携带第一告警事件标识,并在缓存数据中以该第一告警事件标识为索引查询与之匹配的第二告警数据,确保属于同一告警事件的第一告警数据和第二告警数据(比如文本数据和多媒体数据)能够被准确关联,从而避免不同事件的消息与图片发生错配,可有效提升消息推送的准确度。