1

我的系统有大约 10000 个 iOS 用户,我想向他们发送推送通知,但不花时间,因为我可能会在 5 分钟或更短的时间内为同一用户发送另一条消息,我在此之前阅读了这个答案,该答案也建立在 Apple 网站上:

推送通知吞吐量和错误检查

使用 APN 没有上限或批量大小限制。iOS 6.1 新闻稿称,APNs 自成立以来已发送超过 4 万亿条推送通知。在 WWDC 2012 上宣布,APN 每天发送 70 亿条通知。

如果您看到吞吐量低于每秒 9,000 条通知,则您的服务器可能会受益于改进的错误处理逻辑。

但是当我一个一个发送通知时,我不知道如何发送 9000/s 消息。

我正在使用 Python (PyAPNs),这是我的代码:

from apns import APNs,Payload
result = execute("SELECT token_hex FROM `Users`")
for row in result:
    token_hex = row['token_hex']
    apns = APNs(use_sandbox=False, cert_file='Cert.pem', key_file='CertKey.pem')
    payload = Payload(alert="Message",badge=1,sound='default')
    apns.gateway_server.send_notification(token_hex, payload)

我在 30 多分钟内发送给 10000 个用户...

那么我的代码有什么问题,或者我可以做些什么来在更短的时间内发送通知......

提前致谢,

4

1 回答 1

1

我不知道python,但看看你的代码,你似乎在不必要地重复调用。您应该使用相同的连接来发送所有通知。

也许你应该尝试这样的事情:

from apns import APNs,Payload
result = execute("SELECT token_hex FROM `Users`")
apns = APNs(use_sandbox=False, cert_file='Cert.pem', key_file='CertKey.pem')
payload = Payload(alert="Message",badge=1,sound='default')
for row in result:
    token_hex = row['token_hex']
    apns.gateway_server.send_notification(token_hex, payload)

这是假设您向所有设备发送相同的通知有效负载。

于 2013-07-03T14:42:57.277 回答