1

私のシステムには約10000人のiOSユーザーがいて、プッシュ通知を送信したいのですが、同じユーザーに対して5分以内に別のメッセージを送信する可能性があるため、時間をかけずに、Appleサイトにも設立されたこの回答を読みました:

プッシュ通知のスループットとエラー チェック

APNs を使用するための上限やバッチ サイズの制限はありません。iOS 6.1 のプレス リリースによると、APNs は設立以来 4 兆回以上のプッシュ通知を送信しています。WWDC 2012 で、APNs が毎日 70 億の通知を送信していることが発表されました。

スループットが 1 秒あたり 9,000 件未満の通知である場合、サーバーは改善されたエラー処理ロジックの恩恵を受ける可能性があります。

しかし、通知を1つずつ送信しているときに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 に答える