Exemplo n.º 1
0
    async def bench_simple(self):
        payload = bytearray(b"m" * self._size)
        topic = self._topic
        partition = self._partition
        loop = asyncio.get_event_loop()

        producer = AIOKafkaProducer(loop=loop, **self._producer_kwargs)
        await producer.start()

        # We start from after producer connect
        reporter_task = loop.create_task(self._stats_report(loop.time()))
        transaction_size = self.transaction_size

        try:
            if not self._is_transactional:
                for i in range(self._num):
                    # payload[i % self._size] = random.randint(0, 255)
                    await producer.send(topic, payload, partition=partition)
                    self._stats[-1]['count'] += 1
            else:
                for i in range(self._num // transaction_size):
                    # payload[i % self._size] = random.randint(0, 255)
                    async with producer.transaction():
                        for _ in range(transaction_size):
                            await producer.send(topic,
                                                payload,
                                                partition=partition)
                            self._stats[-1]['count'] += 1
        except asyncio.CancelledError:
            pass
        finally:
            await producer.stop()
            reporter_task.cancel()
            await reporter_task
Exemplo n.º 2
0
    async def bench_simple(self):
        payload = bytearray(b"m" * self._size)
        topic = self._topic
        partition = self._partition
        loop = asyncio.get_event_loop()

        producer = AIOKafkaProducer(loop=loop, **self._producer_kwargs)
        await producer.start()

        # We start from after producer connect
        reporter_task = loop.create_task(self._stats_report(loop.time()))
        transaction_size = self.transaction_size

        try:
            if not self._is_transactional:
                for i in range(self._num):
                    # payload[i % self._size] = random.randint(0, 255)
                    await producer.send(topic, payload, partition=partition)
                    self._stats[-1]['count'] += 1
            else:
                for i in range(self._num // transaction_size):
                    # payload[i % self._size] = random.randint(0, 255)
                    async with producer.transaction():
                        for _ in range(transaction_size):
                            await producer.send(
                                topic, payload, partition=partition)
                            self._stats[-1]['count'] += 1
        except asyncio.CancelledError:
            pass
        finally:
            await producer.stop()
            reporter_task.cancel()
            await reporter_task
Exemplo n.º 3
0
async def send_one():
    producer = AIOKafkaProducer(bootstrap_servers='localhost:9092',
                                transactional_id="transactional_test")

    # Get cluster layout and topic/partition allocation
    await producer.start()
    try:
        async with producer.transaction():
            # Produce messages
            res = await producer.send_and_wait("test-topic",
                                               b"Super transactional message")
            input()
            raise ValueError()
    finally:
        await producer.stop()
    print(res)
Exemplo n.º 4
0
async def send_one():
    producer = AIOKafkaProducer(
        bootstrap_servers='localhost:9092',
        transactional_id="transactional_test",
        loop=loop)

    # Get cluster layout and topic/partition allocation
    await producer.start()
    try:
        async with producer.transaction():
            # Produce messages
            res = await producer.send_and_wait(
                "test-topic", b"Super transactional message")
            input()
            raise ValueError()
    finally:
        await producer.stop()
    print(res)