kubemq-Python icon indicating copy to clipboard operation
kubemq-Python copied to clipboard

100% CPU usage when subscribe to Queries or Commands

Open sa4zet opened this issue 2 years ago • 1 comments

How to reproduce:

  1. start a kubemq server
  2. run the following python code:
import logging
from typing import Optional

from kubemq.commandquery import Responder, RequestReceive, Response
from kubemq.subscription import SubscribeRequest, SubscribeType, EventsStoreType
from kubemq.tools import ListenerCancellationToken


def message_handler(request: RequestReceive) -> Optional[Response]:
    if request is None:
        return None
    response = Response(request)
    response.request_id = request.request_id
    response.reply_channel = request.reply_channel
    return response


def error_handler(error: str) -> None:
    logging.error(error)


if __name__ == "__main__":
    cancellation_token = ListenerCancellationToken()
    responder = Responder(kubemq_address="kubemq:50000")
    subscribe_request = SubscribeRequest(
        channel="channel_name",
        client_id="client",
        events_store_type=EventsStoreType.Undefined,
        events_store_type_value=0,
        subscribe_type=SubscribeType.Queries
    )
    responder.subscribe_to_requests(
        subscribe_request=subscribe_request,
        handler=message_handler,
        error_handler=error_handler,
        listener_cancellation_token=cancellation_token
    )
    input("press enter to end receiving messages")

image

Environment:

  • kubemq community edition version: v2.3.7
  • Python 3.11.2
  • kubemq==2.3.0

sa4zet avatar Mar 08 '23 17:03 sa4zet