roycezhc / javapns

Automatically exported from code.google.com/p/javapns

Geek Repo:Geek Repo

Github PK Tool:Github PK Tool

Around 50,000 pushes, 50% pushes are not delivered...

GoogleCodeExporter opened this issue · comments

What steps will reproduce the problem?
1. Try to send 50,000 pushes

What is the expected output? What do you see instead?
Expecting atleast 90% successful pushes

What version of the product are you using? On what operating system?
Latest version

Please provide any additional information below.
I am using around 30 threads to send more than 30-50 thousand pushes. Most of 
the pushes(50%) are not delivered...
pushedNotifications.getSuccessfulNotifications() returns around 20,000
pushedNotifications.getFailedNotifications() returns just around 100.
what happens to the rest???????????
There is no error in logs also....

Original issue reported on code.google.com by coder.a...@gmail.com on 10 Jul 2013 at 1:16

Ubuntu operating system

Original comment by coder.a...@gmail.com on 10 Jul 2013 at 1:19

This is the code I am using to send more than 50,000 notifications

@Override
public List<PushedNotifications> pushAlert(String environment, InputStream is,
            String password, Map<Integer, PushDevice> mapPushDevices, int numberOfThreads) throws JSONException, KeystoreException, CommunicationException, Exception {
        List<PushedNotifications> pushedNotifications = new ArrayList<PushedNotifications>();
        try {
            for (PushDevice pushDevice : mapPushDevices.values()) {
                PushMessage pushMessage = pushDevice.getPushMessage();
                Payload payload = new PushNotificationPayload(pushMessage.getMessage(), pushMessage.getBadge(), "default");
                Map<String, Object> fields = pushMessage.getFields();
                if (fields != null) {
                    for (Map.Entry<String, Object> entry : fields.entrySet()) {
                        payload.addCustomDictionary(entry.getKey(), String.valueOf(entry.getValue()));
                    }
                }
                PushedNotifications pushedNotification = null;

                if ("Sandbox".equals(environment)) {
                    pushedNotification = Push.payload(payload, is, password, Boolean.FALSE, numberOfThreads, pushDevice.getDevicePushTokens());
                } else {
                    pushedNotification = Push.payload(payload, is, password, Boolean.TRUE, numberOfThreads, pushDevice.getDevicePushTokens());
                }

                pushedNotifications.add(pushedNotification);
            }
        } catch (KeystoreException ex) {
            throw ex;
        } catch (CommunicationException ex) {
            throw ex;
        } catch (Exception ex) {
            throw ex;
        }
        return pushedNotifications;
    }

Original comment by coder.a...@gmail.com on 10 Jul 2013 at 1:33

Please try latest build in the trunk.  Also, did you use the Feedback service 
to find out if Apple has issues with all your failed notifications?

Original comment by sype...@gmail.com on 11 Oct 2014 at 9:47