JavaApns в ThreadPoolExecutor? ⇐ JAVA
-
Anonymous
JavaApns в ThreadPoolExecutor?
Чтобы сохранить работоспособность одного ApnsService, я создал ThreadPoolExecutor для хранения потоков для отправки push-уведомлений. Вот код работника:
публичный статический класс PushWorker реализует Runnable{ частный статический окончательный журнал Logger = Logger.getLogger(PushWorker.class); частный строковый токен; частное строковое оповещение; частный международный бейдж; частный струнный звук; частный сервис ApnsService; public PushWorker(ApnsService srv, String t, String a, int b, String s) { жетон = т; предупреждение = а; значок = б; звук = с; сервис = Срв; } @Override общественный недействительный запуск () { PayloadBuilder payloadBuilder = APNS.newPayload(); payloadBuilder.sound(звук); payloadBuilder.badge(значок); payloadBuilder.alertBody(предупреждение); Строковая полезная нагрузка = payloadBuilder.build(); service.push(токен, полезная нагрузка); } } Когда я создал работника и выполнил его в Threadpool:
Пул ThreadPoolExecutor = новый ThreadPoolExecutor(corePoolSize, MaximumPoolSize, KeepAliveTime, TimeUnit.SECONDS,queue); пул.execute(работник); Программа была прекращена в: PayloadBuilder payloadBuilder = APNS.newPayload(); и без каких-либо ошибок или исключений. Но это может сработать, если действовать следующим образом:
Работник PushWorker = новый PushWorker(сервис, токен, оповещение, значок, ноль); рабочий.run(); Я не знаю, почему поток был прерван в Threadpool... Был ли у кого-нибудь такой же вопрос?
Чтобы сохранить работоспособность одного ApnsService, я создал ThreadPoolExecutor для хранения потоков для отправки push-уведомлений. Вот код работника:
публичный статический класс PushWorker реализует Runnable{ частный статический окончательный журнал Logger = Logger.getLogger(PushWorker.class); частный строковый токен; частное строковое оповещение; частный международный бейдж; частный струнный звук; частный сервис ApnsService; public PushWorker(ApnsService srv, String t, String a, int b, String s) { жетон = т; предупреждение = а; значок = б; звук = с; сервис = Срв; } @Override общественный недействительный запуск () { PayloadBuilder payloadBuilder = APNS.newPayload(); payloadBuilder.sound(звук); payloadBuilder.badge(значок); payloadBuilder.alertBody(предупреждение); Строковая полезная нагрузка = payloadBuilder.build(); service.push(токен, полезная нагрузка); } } Когда я создал работника и выполнил его в Threadpool:
Пул ThreadPoolExecutor = новый ThreadPoolExecutor(corePoolSize, MaximumPoolSize, KeepAliveTime, TimeUnit.SECONDS,queue); пул.execute(работник); Программа была прекращена в: PayloadBuilder payloadBuilder = APNS.newPayload(); и без каких-либо ошибок или исключений. Но это может сработать, если действовать следующим образом:
Работник PushWorker = новый PushWorker(сервис, токен, оповещение, значок, ноль); рабочий.run(); Я не знаю, почему поток был прерван в Threadpool... Был ли у кого-нибудь такой же вопрос?
Мобильная версия