async def create_new_pump_async(self, partition_id, lease):
        """
        Create a new pump thread with a given lease.

        :param partition_id: The partition ID.
        :type partition_id: str
        :param lease: The lease to be used.
        :type lease: ~azure.eventprocessorhost.lease.Lease
        """
        loop = asyncio.get_event_loop()
        partition_pump = EventHubPartitionPump(self.host, lease)
        # Do the put after start, if the start fails then put doesn't happen
        loop.create_task(partition_pump.open_async())
        self.partition_pumps[partition_id] = partition_pump
        _logger.info("Created new partition pump %r %r", self.host.guid, partition_id)