하나의 ApnsService를 유지하려면 Thread를 푸시하도록 PushPoolExecutor를 만들었습니다.JavaApns가 ThreadPoolExecutor에서 작동하지 않습니까?
있는 ThreadPoolExecutor 풀 = 사용해, 새로운 ThreadPoolExecutor (corePoolSize를 :
이공공 정적 클래스 PushWorker가의 Runnable {
난 노동자를 생성하고 스레드 풀에서 실행private static final Logger log = Logger.getLogger(PushWorker.class);
private String token;
private String alert;
private int badge;
private String sound;
private ApnsService service;
public PushWorker(ApnsService srv, String t, String a, int b, String s){
token = t;
alert = a;
badge = b;
sound = s;
service = srv;
}
@Override
public void run() {
PayloadBuilder payloadBuilder = APNS.newPayload();
payloadBuilder.sound(sound);
payloadBuilder.badge(badge);
payloadBuilder.alertBody(alert);
String payload = payloadBuilder.build();
service.push(token, payload);
}
}
를 구현 : 여기 작업자의 코드 , maximumPoolSize, keepAliveTime, TimeUnit.SECONDS, queue);
pool.execute (worker);
프로그램이 다음에서 종료되었습니다. PayloadBuilder payloadBuilder = APNS.newPayload(); 오류나 예외가 발생하지 않습니다. 그러나 아래의 방법으로 작동하는 경우 작동 할 수 있습니다.
PushWorker worker = new PushWorker (service, token, alert, badge, null);
worker.run();
스레드가 Threadpool에서 종료 된 이유를 모르겠다. 누구 한테 같은 질문이 있습니까?