在通过JavaPNS发送推送通知时,发生以下消息的异常。
线程中的异常“LIST模式下的JavaPNS分组通知线程” java.lang.OutOfMemoryError:Java堆空间
我想原因是因为我尝试将通知发送给太多用户一次。
public void send (List<Device> devices, Object keystore, String password, boolean production) {
/* Prepare a simple payload to push */
PushNotificationPayload payload = PushNotificationPayload.alert("Hello World!");
/* Decide how many threads you want to create and use */
int threads = 30;
/* Start threads, wait for them, and get a list of all pushed notifications */
List<PushedNotification> notifications = Push.payload(payload, keystore, password, production, threads, devices);
}
我将73,889个设备令牌放入列表devices
并收到例外。
您认为我需要多次发送通知吗? 有没有人想过向很多人发送通知?
谢谢!
答案 0 :(得分:1)
我可以为您的问题考虑两种解决方案:
1)发送批次...说20k
或
2)增加堆内存大小
例如: java -Xms512m -Xmx512m
(做搜索......)