Advertisement
Guest User

Untitled

a guest
Jul 20th, 2016
101
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 2.08 KB | None | 0 0
  1. package repros.repros;
  2.  
  3. import java.time.Instant;
  4. import java.util.Random;
  5. import java.util.UUID;
  6. import java.util.concurrent.CompletableFuture;
  7. import java.util.function.BiConsumer;
  8. import java.util.logging.FileHandler;
  9. import java.util.logging.Level;
  10. import java.util.logging.LogRecord;
  11. import java.util.logging.Logger;
  12. import java.util.logging.SimpleFormatter;
  13.  
  14. import com.microsoft.azure.eventhubs.EventData;
  15. import com.microsoft.azure.eventhubs.EventHubClient;
  16. import com.microsoft.azure.servicebus.ConnectionStringBuilder;
  17.  
  18. public class SendAsync
  19. {
  20.  
  21. public static void main( String[] args) throws Exception
  22. {
  23. final int sendPerLoop = 5;
  24.  
  25. String username = "--------------";
  26. String password = "---------------------------------";
  27. String namespaceName = "--------";
  28. String eventHubName = "-------";
  29.  
  30. ConnectionStringBuilder connStr = new ConnectionStringBuilder(namespaceName, eventHubName, username, password);
  31.  
  32. String connectionString = connStr.toString();
  33. System.out.println(connectionString);
  34. System.out.println(Instant.now().toString());
  35.  
  36. EventHubClient client = EventHubClient.createFromConnectionStringSync(connectionString);
  37. for (int i = 0; i < sendPerLoop; i++)
  38. {
  39. startSending(client);
  40. }
  41.  
  42. }
  43.  
  44. public static void startSending(final EventHubClient ehClient)
  45. {
  46. byte[] payload = new byte[300];
  47. new Random().nextBytes(payload);
  48. EventData eData = new EventData(payload);
  49.  
  50. final Instant startTime = Instant.now();
  51.  
  52. final CompletableFuture<Void> sendFuture = ehClient.send(eData, UUID.randomUUID().toString()).whenCompleteAsync(new BiConsumer<Void, Throwable>() {
  53. @Override
  54. public void accept(Void t, Throwable u) {
  55. if (u != null) {
  56. u.printStackTrace();
  57. }
  58.  
  59. final long latency = Instant.now().toEpochMilli() - startTime.toEpochMilli();
  60. // TODO: async log
  61. }});
  62.  
  63. sendFuture.whenCompleteAsync(new BiConsumer<Void, Throwable>() {
  64. @Override
  65. public void accept(Void t, Throwable u) {
  66. startSending(ehClient);
  67. }});
  68. }
  69. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement