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
()¶