Azure通知中心:如何处理一百万台设备的注册?

时间:2015-12-21 12:03:09

标签: azure notifications push-notification tags azure-notificationhub

要求 -

要求是在特定时间向设备发送通知。也就是说,如果用户在上午07:00设定了早餐时间表,那么他会收到相同的通知,例如“早餐时间,等等等等等等!”#。 p>

然而,如果用户在早上7点之前已经吃过早餐,他就会把他的日记记录下来,然后通知不得发送到他。

这是一个经常性的时间表,用户只有在需要时才会更改,否则,时间表大致相同。

我们取得了什么? -

因此,目前我们所做的是注册设备,例如' {TimeZone:EST},{早餐:07:00:00}'在应用程序的发布上。

如果用户已经吃过早餐,我们会更新他在通知中心的注册,同时还包含一个标签,例如' {HadBreakfast}' - 因此,用户设备注册的标签集变为 - ' {TimeZone:EST},{早餐:07:00:00},{HadBreakfast}'

我们坚持什么? -

这种方法非常有效,因为在发送通知时,我们会使用标签表达式,例如 - ' {TimeZone:EST}&& {早餐:07:00:00}&& !{HadBreakfast}'

因此,这将向所有希望在美国东部时间早上07:00:00收到早餐通知的用户发送通知,但不会向已经吃过早餐的用户发送通知。

但是,如果用户注册了{HadBreakfast}等标签,那么第二天,他可能无法根据刚刚描述的逻辑获得通知。

因此,我们提出了一种解决方法,通过运行调度程序,在所有具有该标记的设备上,在一天结束时仅取消注册{HadBreakfast}标记。

但是,在我们的脑海中,我们认为这不是解决这个问题的最佳方案。

其他选择 -

我们还想到了另一个替代方案,我们可以在每个小时内运行一个调度程序,对于具有该标记的所有用户设备,它将为过去一小时删除此类标记做同样的事情 - 这个过程似乎比一天运行一次更有效。

但我们想知道社区对我能尝试的一些想法吗?如果我们使用的方法是否正确?还有什么方法可以更简单或更顺利地完成这项工作? 如果我们有一百多万台设备怎么办?这会有用吗?

1 个答案:

答案 0 :(得分:0)

我建议您探索modifying registration in bulk的选项并使用Azure Scheduler进行重新启动任务