我目前正在开发一款具有某种用户会议系统的应用, 最近,我们的产品团队要求包含一些预定的推送通知,这些通知将提醒用户他们在会议开始前30分钟,会议开始前10分钟和会议开始前10分钟开会。 (我们使用FCM作为推送通知服务)
当前,对于每个新会议,我们都会根据AWS CloudWatch Events规则注册一项cron作业,但是我已经意识到,由于预期会有大量已注册的会议,这可能不是实现它的最佳方法...(例如如果我们要召开100次活动会议,那么我们将有300条已注册的CloudWatch Events规则...
所以我的问题是实现这种服务的更好方法吗?
编辑: 客户端都是IOS(Swift)和Anrdoid(Java)
答案 0 :(得分:2)
绝对最好的方法是将会议数据推送或同步到移动应用,然后让移动应用管理通知。
如果您确实需要直接从云中发送通知,则应将系统设计为高度可扩展的,能够处理成千上万次会议。
最简单的方法可能是在创建会议时在数据库中填充“通知”表。在通知用户的时间添加一行。
然后,使用 Amazon CloudWatch Events 上的时间表每分钟触发一次 AWS Lambda功能。 Lambda函数应在数据库中查询在此分钟(或更早)安排的尚未发送的任何通知。 (这样可以在失败后重试。)
通过 Amazon SNS 或 Amazon Pinpoint 发送通知。然后,将通知标记为已发送。