class AddService:    name = 'add_service'    @event_handler('productor_service', 'a')    @event_handler('productor_service', 'b')    def handle_message(self, payload: str):        logger.debug(f'handle_message {payload}')    @rpc    @context_id_dec    def add(self, a: int, b: int, /, context_id: str) -> int | None:        try:            logger.debug(f'收到一个加法计算申请:{a},{b},{asgi_context_id.get()}')            # time.sleep(1000)            return a+b        except Exception as error:            logger.exception(error)            return None    @http('GET', '/hi')    def hi(self, request):        return "hello world"    @http('GET', '/ha')    def ha(self, request):        time.sleep(10)        return 'ok'

nameko run services:AddService --config ./config.yaml 应用该命令,发现只有一个连贯:

class TrashCanService:    name = 'trash_scan_service'    @event_handler('hi_api', 'rubbish')    def receive(self, message: str):        logger.debug(f'开始生产音讯, {message}')        response = requests.get('http://127.0.0.1:50010')        logger.debug(f'{message}, {response.text}')    receive.create_queue_only = True    @event_handler('drop_throw_rubbish_service', 'drop_rubbish')    def receive_by_rpc(self, message: str):        passclass AddService:    name = 'add_service'    @event_handler('productor_service', 'a')    @event_handler('productor_service', 'b')    def handle_message(self, payload: str):        logger.debug(f'handle_message {payload}')    @rpc    @context_id_dec    def add(self, a: int, b: int, /, context_id: str) -> int | None:        try:            logger.debug(f'收到一个加法计算申请:{a},{b},{asgi_context_id.get()}')            # time.sleep(1000)            return a+b        except Exception as error:            logger.exception(error)            return None    @http('GET', '/hi')    def hi(self, request):        return "hello world"    @http('GET', '/ha')    def ha(self, request):        time.sleep(10)        return 'ok'

然而这样,两个服务,一共两个 amqp 连贯:

所以 nameko 是一个服务一个 amqp 连贯,还是每个队列 work 函数一个 amqp 连贯? 这个问题的论断就是:nameko 是一个服务一个 amqp 连贯