executor module¶
该模块定义了 RPC 任务执行器
服务器模块 server 将来自 smartbus 的请求传递给执行器类 Executor 的实例, 执行器解析请求的 JSON RPC 格式,并分配执行体,在线程池中执行, 然后返回结果。
date: | 2013-12-14 |
---|---|
author: | 刘雪彦 <lxy@hesong.net> |
- class executor.Executor(queue_maxsize=0, pool_processes=None, pool_maxtasksperchild=None)¶
基类:logging.handlers.QueueListener
smarbus JSON RPC 请求执行器
使用进程池执行 RPC 请求
参数: - queue_maxsize – 任务队列最大值 默认为0,表示无限制。
- pool_processes – 执行器池的最大数量 默认为 none,表示使用 CPU 核心数量作为其最大值
- pool_maxtasksperchild – 进程池最大执行数量 默认为 None,表示无限制。超过该值,则重启子进程。仅对进程池模型有效。
在接收到 smartbus 请求后,需要向这个队列放置数据,数据的格式是: client, pack_info, txt 分别是:收到数据的 smartbus 客户端的实例,数据包附加信息,数据文本。
收到数据后,本类型的实例将按照 JSON-RPC 格式解析数据,并执行 JSON RPC 请求,最后将执行结果通过 smartbus 客户端进行返回。 返回数据格式是符合 JSON RPC 标准的字符串。
- handle(record)¶
- put(client, pack_info, txt)¶
- start()¶
- stop()¶