code: def add_async_sender(
              self, partition=None, operation=None, send_timeout=60,
              keep_alive=30, auto_reconnect=True, loop=None):
          
          target = "amqps://{}{}".format(self.address.hostname, self.address.path)
          if operation:
              target = target + operation
          handler = AsyncSender(
              self, target, partition=partition, send_timeout=send_timeout, keep_alive=keep_alive,
              auto_reconnect=auto_reconnect, loop=loop)
          self.clients.append(handler)
          return handler
docs: Add an async sender to the client to send ~azure.eventhub.common.EventData object
          to an EventHub.
  
          :param partition: Optionally specify a particular partition to send to.
           If omitted, the events will be distributed to available partitions via
           round-robin.
          :type partition: str
          :operation: An optional operation to be appended to the hostname in the target URL.
           The value must start with `/` character.
          :type operation: str
          :param send_timeout: The timeout in seconds for an individual event to be sent from the time that it is
           queued. Default value is 60 seconds. If set to 0, there will be no timeout.
          :type send_timeout: int
          :param keep_alive: The time interval in seconds between pinging the connection to keep it alive during
           periods of inactivity. The default value is 30 seconds. If set to `None`, the connection will not
           be pinged.
          :type keep_alive: int
          :param auto_reconnect: Whether to automatically reconnect the sender if a retryable error occurs.
           Default value is `True`.
          :type auto_reconnect: bool
          :rtype: ~azure.eventhub.async_ops.sender_async.SenderAsync