public ShardedNotificationHubClient(INHConfiguration configuration) { this.configuration = configuration; for (Integer shard : configuration.getHubConnectionStrings().keySet()) { hubs.put( shard, createNotificationHubClient( configuration.getHubConnectionStrings().get(shard), configuration.getHubNames().get(shard))); } }
private int getRandomAvailableShard() { List<Integer> availableHubs = configuration.getHubsWithFreeSpace(); return availableHubs.get(random.nextInt(availableHubs.size())).intValue(); }