1.一种小程序消息的推送方法,其特征在于,包括:
根据用户的触发指令获得所述用户的openID,并将所述用户的openID存储至数据库中,所述用户与所述用户的openID一一对应;
在所述数据库中确定满足推送条件的待推送用户,并获得所述待推送用户的用户数量;
根据所述用户数量确定创建go routine的数量;
根据所述go routine的数量对所述待推送用户进行分组,各go routine对应一个分组,所述各分组包括至少一个待推送用户;
通过所述各go routine并行读取对应的分组内的用户信息,所述用户信息包括所述待推送用户的openID和更新记录时间;
按照所述各分组的顺序,根据所述更新记录时间依次获取所述各分组中待推送用户上报的formID,以向所述各分组中待推送用户推送小程序消息。
2.根据权利要求1所述的方法,其特征在于,所述在所述数据库中确定满足推送条件的待推送用户包括:确定所述数据库中各用户在第一预设时间段内使用所述小程序的频率;
将使用所述小程序的频率大于预设数值的用户确定为所述待推送用户。
3.根据权利要求1所述的方法,其特征在于,所述根据所述用户数量确定创建go routine的数量包括:根据所述用户数量的量级在预设的量级-读取个数表格中确定与所述用户数量的量级对应的目标读取个数,所述目标读取个数为所述各go routine读取用户信息的个数;
根据所述用户数量和所述目标读取个数确定所述go routine的数量。
4.根据权利要求3所述的方法,其特征在于,所述根据所述用户数量和所述目标读取个数确定所述go routine的数量包括:将所述用户数量与所述目标读取个数做除法运算,得到商值;
当所述商值为整数时,将所述商值确定为所述go routine的数量;
当所述商值不为整数时,将所述商值的整数位加1作为所述go routine的数量。
5.根据权利要求3所述的方法,其特征在于,所述根据所述go routine的数量对所述待推送用户进行分组包括:将所述待推送用户分为N组分组,并根据序号对所述N组分组进行标识,得到分组集合{分组0,分组1…分组N-1},所述N为所述go routine的数量,其中,所述分组0至所述分组N-
2中的待推送用户的数目均为所述目标读取个数。
6.根据权利要求1所述的方法,其特征在于,所述方法还包括:定时在所述数据库中确定第二预设时间段内未上报过formID的用户;
将所述未上报过formID的用户从所述数据库中清除。
7.根据权利要求1所述的方法,其特征在于,所述按照所述各分组的顺序,根据所述更新记录时间依次获取所述待推送用户上报的formID,以向所述待推送用户推送小程序消息之后,所述方法还包括:若向所述待推送用户推送所述小程序消息失败,则生成并存储错误日志,所述错误日志包括发生错误处的上下文信息,所述上下文信息用于确定推送失败原因。
8.一种服务器,其特征在于,包括:
获得单元,用于根据用户的触发指令获得所述用户的openID,并将所述用户的openID存储至数据库中,所述用户与所述用户的openID一一对应;
确定单元,用于在所述数据库中确定满足推送条件的待推送用户,并获得所述待推送用户的用户数量;根据所述用户数量确定创建go routine的数量;
分组单元,用于根据所述go routine的数量对所述待推送用户进行分组,各go routine对应一个分组,所述各分组包括至少一个待推送用户;
读取单元,用于通过所述各go routine并行读取对应的分组内的用户信息,所述用户信息包括所述待推送用户的openID和更新记录时间;
推送单元,用于按照所述各分组的顺序,根据所述更新记录时间依次获取所述各分组中待推送用户上报的formID,以向所述各分组中待推送用户推送小程序消息。
9.一种计算机可读存储介质,包括指令,当其在计算机上运行时,使得计算机执行如权利要求1-7任意一项所述的方法。
10.一种包含指令的计算机程序产品,当其在计算机上运行时,使得计算机执行如权利要求1-7任意一项所述的方法。