对此优秀页面发现以下功能:执行ping命令来使用Lua io.popen地址,非阻塞如果Ping超时
function os.capture(cmd, raw)
local f = assert(io.popen(cmd, 'r'))
local s = assert(f:read('*a'))
f:close()
if raw then return s end
s = string.gsub(s, '^%s+', '')
s = string.gsub(s, '%s+$', '')
s = string.gsub(s, '[\n\r]+', ' ')
return s
end
如果我用CMD =“平myknowngoodip执行此功能 - c 1“,那么一切都很好,它立即回来的结果。
但如果Ping超时(服务器上下左右),它阻断至少5秒钟整个节目对我来说
可能的解决方案:
使用协同程序(但如何设计他们妥善得到它的工作?)
使用的东西来检测,如果该文件被写入或写锁就可以了(我怎么做吗?)
目标是我通过copas接收(http://keplerproject.github.io/copas/)“查找”请求来ping不同的IP并在IP存活或不存在时报告回来。 COPAS启动并运行,至今工作
你的帮助
单独的线程与专用的Lua VM在里面? –