-
Notifications
You must be signed in to change notification settings - Fork 297
Open
Description
Firebase Admin Java SDK v9.6.0
FirebaseOptions.Builder builder = FirebaseOptions.builder()
...
.setHttpTransport(new ApacheHttp2Transport(httpClient));
ApiFuture<BatchResponse> futures = firebaseMessaging.sendEachAsync(messages, dryRun);
BatchResponse response;
try {
response = futures.get(TIME_OUT_MS, TimeUnit.MILLISECONDS);
} catch (TimeoutException e) {
...
}
final PoolStats total = poolingAsyncClientConnectionManager.getTotalStats();
return String.format("Available=%d, leased=%d, pending=%d, max=%d",
total.getAvailable(),
total.getLeased(),
total.getPending(),
total.getMax());
Observation:
Under very busy network, FCM backend may return Unknown error while making a remote service call: Write Timeout
or other errors.
Log writing (successful or failed response) become slow and slower. Afterward, all pending requests were timed out at response = futures.get(TIME_OUT_MS, TimeUnit.MILLISECONDS);
When the program just started:
Available=95, leased=5, pending=0, max=200
After some times:
Available=0, leased=0, pending=0, max=200
Update:
When using Google APIs Transports
:
There is disconnect
implementation in google-http-java-client
However, when using ApacheHttp2Transport
:
There is no such implementation in ApacheHttp2Response
when it is disconnected, no matter the response is successfully or failed.
Metadata
Metadata
Assignees
Labels
No labels