This commit is contained in:
heavyrain.lee
2019-01-24 21:28:34 +08:00
parent 25a1d8db15
commit 6d5838871c

View File

@@ -13,12 +13,15 @@ import org.springframework.util.StringUtils;
import javax.annotation.PostConstruct; import javax.annotation.PostConstruct;
import java.util.Date; import java.util.Date;
import java.util.Map; import java.util.Map;
import java.util.concurrent.ExecutorService;
import java.util.concurrent.Executors;
import static com.notnoop.apns.DeliveryError.INVALID_TOKEN; import static com.notnoop.apns.DeliveryError.INVALID_TOKEN;
@Component @Component
public class ApnsServer implements ApnsDelegate { public class ApnsServer implements ApnsDelegate {
private static final Logger LOG = LoggerFactory.getLogger(ApnsServer.class); private static final Logger LOG = LoggerFactory.getLogger(ApnsServer.class);
private static ExecutorService mExecutor = Executors.newFixedThreadPool(Runtime.getRuntime().availableProcessors() * 5);
@Override @Override
public void messageSent(ApnsNotification message, boolean resent) { public void messageSent(ApnsNotification message, boolean resent) {
LOG.info("APNS push sent:{}", message.getDeviceToken()); LOG.info("APNS push sent:{}", message.getDeviceToken());
@@ -100,7 +103,13 @@ public class ApnsServer implements ApnsDelegate {
public void pushMessage(PushMessage pushMessage) { public void pushMessage(PushMessage pushMessage) {
final long start = System.currentTimeMillis();
mExecutor.submit(()-> {
long now = System.currentTimeMillis();
if (now - start > 5000) {
LOG.error("等待太久,消息抛弃");
return;
}
ApnsService service = developSvc; ApnsService service = developSvc;
if (pushMessage.getPushType() == IOSPushType.IOS_PUSH_TYPE_DISTRIBUTION) { if (pushMessage.getPushType() == IOSPushType.IOS_PUSH_TYPE_DISTRIBUTION) {
if (pushMessage.pushMessageType == PushMessageType.PUSH_MESSAGE_TYPE_NORMAL || StringUtils.isEmpty(pushMessage.getVoipDeviceToken())) { if (pushMessage.pushMessageType == PushMessageType.PUSH_MESSAGE_TYPE_NORMAL || StringUtils.isEmpty(pushMessage.getVoipDeviceToken())) {
@@ -183,5 +192,7 @@ public class ApnsServer implements ApnsDelegate {
for (final Map.Entry<String, Date> ent : inactiveDevices.entrySet()) { for (final Map.Entry<String, Date> ent : inactiveDevices.entrySet()) {
LOG.info("Inactive " + ent.getKey() + " at date " + ent.getValue()); LOG.info("Inactive " + ent.getKey() + " at date " + ent.getValue());
} }
});
} }
} }