本技术涉及数据处理,特别涉及一种消息推送方法、装置及存储介质。
背景技术:
1、智能家居系统是指通过物联网、云计算等技术,将家庭中的多个智能家居设备(例如智能门锁、智能空调、智能音响、智能窗帘等)和用户终端连接起来,并通过家庭网关将多个智能家居设备连接至云平台,进而通过云平台对多个智能家居设备进行管理。在用户终端在连接至云平台的情况下,用户还能够通过云平台对智能家居设备进行远程控制。
2、在相关技术中,云平台在管理多个用户家庭的智能家居设备的过程中,可以基于用户设置,周期性地向各个用户的用户终端发送通知消息,以向各个用户同步家庭中智能家居设备的运行状态等关键数据。其中,云平台周期性地向各个用户的用户终端发送通知消息的实现过程为:查询数据库,通过访问存储有用户个人信息、设备状态、通知偏好、历史通知记录等数据的多个数据库,来确定各个用户通知设置信息(包括用户设置的通知时间和通知周期);然后,根据各个用户设置的通知时间和通知周期(例如,每天早上9点提醒打扫房间),在数据库中为各个用户创建通知记录,该通知记录详细标明了每次通知的具体时间和通知内容。基于此,云平台根据各个用户设定的通知周期(例如每天、每周等),计算出下一次通知消息的推送时间,并在到达该推送时间时,向对应的用户终端发送通知消息,同时更新数据库中该用户的通知记录。
3、然而,随着智能家居设备的增多和用户数量的增长,在达到通知周期对应的时间点时,大量满足条件的通知消息会同时被触发,导致需要推送的通知消息的数量激增,使得部分通知消息推送存在延迟。
技术实现思路
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、在按照通知周期向多个用户推送通知消息时,结合各个用户对应的通知启用时刻,来确定当前通知周期内在各个时刻需要推送通知消息的目标用户,从而在通知周期内分批向对应的目标用户推送通知消息。由于多个用户的通知启用时刻不完全相同,即至少存在部分用户的通知启用时刻不同,因此,结合用户的通知启用时刻周期性地推送通知消息,使得推送的通知消息相对离散,降低了消息推送时延。
1.一种消息推送方法,其特征在于,所述方法包括:
2.如权利要求1所述的方法,其特征在于,所述基于所述通知启用时刻和所述通知周期,从所述多个用户中确定所述当前时刻需要推送通知消息的目标用户,包括:
3.如权利要求2所述的方法,其特征在于,所述基于所述第一用户对应的通知启用时刻、所述通知周期的周期长度,以及所述推送周期的周期长度,确定所述当前时刻是否需要向所述第一用户推送通知消息,包括:
4.如权利要求3所述的方法,其特征在于,所述基于所述通知启用总时长和所述通知周期的周期长度,确定所述第一用户在所述当前时刻的周期差值,包括:
5.如权利要求3或4所述的方法,其特征在于,所述基于所述周期差值和所述推送周期的周期长度,确定所述当前时刻是否需要向所述第一用户推送通知消息,包括:
6.如权利要求3或4所述的方法,其特征在于,所述基于所述周期差值和所述推送周期的周期长度,确定所述当前时刻是否需要向所述第一用户推送通知消息,包括:
7.如权利要求1-6任一项所述的方法,其特征在于,所述基于所述通知启用时刻和所述通知周期的周期长度,从所述多个用户中确定当前时刻需要推送通知消息的目标用户,包括:
8.如权利要求1-7任一项所述的方法,其特征在于,所述用户为多个智能家居设备的管理者,所述通知消息包括告警消息,所述告警消息用于指示所述多个智能家居设备中的至少一个智能家居设备存在异常。
9.一种消息推送装置,其特征在于,所述装置包括:
10.一种计算机可读存储介质,其特征在于,所述存储介质内存储有计算机程序,所述计算机程序被处理器执行时实现权利要求1-8任一项所述的消息推送方法。
