相关内容
通知模板、用户信息、通知设置、设备信息。
推送的类型
推送的类型,比如:通知、邮件、短信等
推送通知的服务商
极光推送(JPush)
推送流程
后端服务 --> 第三方推送服务(极光) ---> app
通知模板
需要制定一个通知模板,发送给用户的通知,是什么格式的,包括 唯一key、标题、内容、最后更新时间、创建时间、创建人、是否删除等。
占位符
通知的内容,通常是有一些相同的格式,对属性进行替换,可以制定一些占位符,比如 {name}
。
示例:
通知的格式为 :
{name}点赞了你的评论
拿到通知内容后,再对通知内的 占位符进行替换。
用户信息
包括 用户id,用户名称,用户手机号码 等。
通知设置
包括 用户id,推送的类型,是否选择接收通知等。
需要先检查用户是否打开了推送通知的设置,再决定是否进行推送。
通知的发送记录
如果是要求推送一定要成功的,可以用数据表写入推送的通知记录。
包括: push服务商的消息id 、状态 、类型、通知是否发送成功、失败的次数、推送时间、通知的json字符串 。
推送不成功,如何处理?
可以加入重试机制。如果第三方服务推送失败,可以加入MQ中,以便重新发送。
如果失败次数过多,可以给开发人员发送告警信息。
推送数据量为大,如何处理?
分批次推送。
推送数据过于集中,如何处理?
数据打散后推送。
推送数据不能全部集中在某个时间点,会加大负载,可以打散后再推送。
性能
-
缓存:
可以缓存:通知模板、用户信息、设备信息。 -
MQ:
使用MQ,异步推送通知。