Implement send_each
and send_multicast
#692
Merged
Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
send_each
vssend_all
send_each
sends one HTTP request to V1 Send endpoint for each message in the list.send_all
sends only one HTTP request to V1 Batch Send endpoint to send all messages in the array.send_each
uses concurrent.futures.ThreadPoolExecutor to run and wait for allrequest
calls to complete and construct aBatchResponse
. Anrequest
call to V1 Send endpoint either completes with a success or throws an exception. So if an exception is thrown out, the exception will be caught insend_each
and turned into aSendResponse
with an exception. Therefore, unlikesend_all
,send_each
does not always throw an exception for a total failure. It can also return aBatchResponse
with only exceptions in it.send_each_for_multicast
callssend_each
under the hood.