nameko.rpc

Attributes

Classes

RpcConsumer

请注意,Extension.__init__bind 过程中以及实例化时都会被调用,因此请避免在此方法中产生副作用。请使用 setup

Rpc

入口点封装类

Responder

ReplyListener

请注意,Extension.__init__bind 过程中以及实例化时都会被调用,因此请避免在此方法中产生副作用。请使用 setup

RpcProxy

请注意,Extension.__init__bind 过程中以及实例化时都会被调用,因此请避免在此方法中产生副作用。请使用 setup

ServiceProxy

RpcReply

解析RPC响应内容

MethodProxy

RPC 方法代理

Functions

Module Contents

nameko.rpc._log[源代码]
nameko.rpc.RPC_QUEUE_TEMPLATE = 'rpc-{}'[源代码]
nameko.rpc.RPC_REPLY_QUEUE_TEMPLATE = 'rpc.reply-{}-{}'[源代码]
nameko.rpc.RPC_REPLY_QUEUE_TTL = 300000[源代码]
nameko.rpc.get_rpc_exchange(config)[源代码]
class nameko.rpc.RpcConsumer[源代码]

Bases: nameko.extensions.SharedExtension, nameko.extensions.ProviderCollector

请注意,Extension.__init__bind 过程中以及实例化时都会被调用,因此请避免在此方法中产生副作用。请使用 setup

此外,binditer_extensions 使用反射来查找扩展可能声明的任何子扩展。扩展上的任何描述符应该预计在反射过程中被调用,这发生在 ServiceContainer.__init__ServiceContainer.setup 之间。

Extension.container 属性提供对绑定到该扩展的 nameko.containers.ServiceContainer 实例的访问,否则为 None

queue_consumer[源代码]
_unregistering_providers[源代码]
_unregistered_from_queue_consumer[源代码]
queue = None[源代码]
setup()[源代码]

在容器启动之前调用了绑定的扩展。

扩展应在此处进行任何必要的初始化。

stop()[源代码]

停止 RpcConsumer。

当最后一个 Rpc 子类从队列消费者中注销时,RpcConsumer 将正常注销。如果没有注册任何提供者,则我们应该在被请求停止时立即从队列消费者注销。

unregister_provider(provider)[源代码]

注销提供者。

阻塞直到此 RpcConsumer 从其队列消费者中注销,这只有在所有提供者都请求注销时才会发生。

get_provider_for_method(routing_key)[源代码]
handle_message(body, message)[源代码]
handle_result(message, result, exc_info)[源代码]
requeue_message(message)[源代码]
class nameko.rpc.Rpc(expected_exceptions=(), sensitive_arguments=(), **kwargs)[源代码]

Bases: nameko.extensions.Entrypoint, nameko.messaging.HeaderDecoder

入口点封装类

Parameters:
expected_exceptions异常类或异常类元组

指定可能由调用者引起的异常(例如,通过提供错误的参数)。 保存在入口点实例中作为 entrypoint.expected_exceptions,供其他扩展(例如监控系统)后续检查。

sensitive_arguments字符串或字符串元组

将参数或参数的一部分标记为敏感。保存在入口点实例中作为 entrypoint.sensitive_arguments, 供其他扩展(例如日志系统)后续检查。

seealso:

nameko.utils.get_redacted_args()

rpc_consumer[源代码]
setup()[源代码]

在容器启动之前调用了绑定的扩展。

扩展应在此处进行任何必要的初始化。

stop()[源代码]

在服务容器开始关闭时调用。

扩展应在此处执行任何优雅的关闭操作。

handle_message(body, message)[源代码]
handle_result(message, worker_ctx, result, exc_info)[源代码]
nameko.rpc.rpc[源代码]
class nameko.rpc.Responder(amqp_uri, exchange, serializer, message, ssl=None, login_method=None)[源代码]

Bases: object

publisher_cls[源代码]
amqp_uri[源代码]
serializer[源代码]
message[源代码]
exchange[源代码]
ssl[源代码]
login_method[源代码]
send_response(result, exc_info)[源代码]
class nameko.rpc.ReplyListener(**kwargs)[源代码]

Bases: nameko.extensions.SharedExtension

请注意,Extension.__init__bind 过程中以及实例化时都会被调用,因此请避免在此方法中产生副作用。请使用 setup

此外,binditer_extensions 使用反射来查找扩展可能声明的任何子扩展。扩展上的任何描述符应该预计在反射过程中被调用,这发生在 ServiceContainer.__init__ServiceContainer.setup 之间。

Extension.container 属性提供对绑定到该扩展的 nameko.containers.ServiceContainer 实例的访问,否则为 None

queue_consumer[源代码]
_reply_events[源代码]
setup()[源代码]

在容器启动之前调用了绑定的扩展。

扩展应在此处进行任何必要的初始化。

stop()[源代码]

在服务容器开始关闭时调用。

扩展应在此处执行任何优雅的关闭操作。

get_reply_event(correlation_id)[源代码]
handle_message(body, message)[源代码]
class nameko.rpc.RpcProxy(target_service, **options)[源代码]

Bases: nameko.extensions.DependencyProvider

请注意,Extension.__init__bind 过程中以及实例化时都会被调用,因此请避免在此方法中产生副作用。请使用 setup

此外,binditer_extensions 使用反射来查找扩展可能声明的任何子扩展。扩展上的任何描述符应该预计在反射过程中被调用,这发生在 ServiceContainer.__init__ServiceContainer.setup 之间。

Extension.container 属性提供对绑定到该扩展的 nameko.containers.ServiceContainer 实例的访问,否则为 None

rpc_reply_listener[源代码]
target_service[源代码]
options[源代码]
get_dependency(worker_ctx)[源代码]

在工作者执行之前调用。依赖提供者应返回一个对象,以便容器将其注入到工作者实例中。

class nameko.rpc.ServiceProxy(worker_ctx, service_name, reply_listener: ReplyListener, **options)[源代码]

Bases: object

worker_ctx[源代码]
service_name[源代码]
reply_listener[源代码]
options[源代码]
__getattr__(name)[源代码]
class nameko.rpc.RpcReply(reply_event: eventlet.event.Event)[源代码]

Bases: object

解析RPC响应内容

resp_body: dict | None = None[源代码]
reply_event[源代码]
result()[源代码]
class nameko.rpc.MethodProxy(worker_ctx, service_name, method_name, reply_listener: ReplyListener, **options)[源代码]

Bases: nameko.messaging.HeaderEncoder

RPC 方法代理

请注意,抛出 UnknownService 异常的机制依赖于代理中启用发布确认。

publisher_cls[源代码]
worker_ctx[源代码]
service_name[源代码]
method_name[源代码]
reply_listener[源代码]
compat_attrs = ('retry', 'retry_policy', 'use_confirms')[源代码]
property serializer[源代码]
用于发布消息有效负载时的默认序列化器。

必须作为一个 kombu 序列化器 注册。

publisher[源代码]
__call__(*args, **kwargs)[源代码]
property container[源代码]
property amqp_uri[源代码]
property ssl[源代码]
property login_method[源代码]
call_async(*args, **kwargs)[源代码]
_call(*args, **kwargs)[源代码]
__repr__()[源代码]