local thread = require "ngx.thread" local result function query_mysql1() -- use lua-resty-mysql as usual -- to access mysql server A result = ... end function query_mysql2() -- use lua-resty-mysql as usual -- to access mysql server B result = ... end local t1 = thread.new(query_mysql1) local t2 = thread.new(query_mysql2) local t = thread.waitany({t1, t2}) if t == t1 then t2:abort() else t1:abort() end ngx.say(result)