我正在为 mysql-proxy 编写脚本。我想要完成的事情是无关紧要的。但是,我发现似乎 lua 接口的某些元素未记录在案。我拥有的大“确凿证据”就是disconnect_client()
钩子。我在官方文档中的任何地方都找不到它,尽管它在管理界面解释的示例中使用过。它也在示例文档中被广泛使用。快速 grep 显示了它在 5.5.8 发行版中包含的以下脚本中的用途:
active- queries.lua
active-transactions.lua
load-multi.lua
ro-pooling.lua
rw-splitting.lua
tutorial-keepalive.lua
另一个引起我注意的例子是表中条目的属性proxy.global.backends
列表。该文档列出了以下属性:
dst.name
dst.address
dst.port
connected_clients
state
type
但是,一些示例脚本引用了一个相当复杂的元素,称为 pool。举个例子tutorial-keepalive.lua
:
local s = proxy.global.backends[i]
local pool = s.pool
local cur_idle = pool.users[proxy.connection.client.username].cur_idle_connections
起初我以为它被添加到 lua 中的其他地方,但我已经查看了,我找不到任何分配给 proxy.global.backends[i].pool 的代码。
所以,我想有两个问题:
- 我疯了吗?请随时展示我是如何忽略显而易见的,并且文档非常清楚。
- 假设我是对的,是否有任何地方可以找到完整的文档?一个不错的链接会很棒(虽然我不能用谷歌搜索),但甚至“看看定义接口的 mysql-proxy 发行版中的这个 .c 文件”。至少那会给我一些东西可以戳。
谢谢