我想與Lua解釋器一起使用OpenResty。Openresty併發請求
我不能讓OpenResty框架處理兩個併發的請求到兩個單獨的端點。我模仿一個請求是由一個長循環中運行做了一些硬算了一筆賬:
local function busyWaiting()
local self = coroutine.running()
local i = 1
while i < 9999999 do
i = i + 1
coroutine.yield(self)
end
end
local self = coroutine.running()
local thread = ngx.thread.spawn(busyWaiting)
while (coroutine.status(thread) ~= 'zombie') do
coroutine.yield(self)
end
ngx.say('test1!')
的另一個端點只是立即發送響應。 ngx.say('test2')
我向第一個端點發送請求,然後向第二個端點發送第二個請求。但是,OpenResty被第一個請求阻止,所以幾乎同時收到兩個響應。
將nginx參數worker_processes 1;
設置爲較高的數字也無濟於事,我希望只有一個工作進程。
什麼是正確的方式讓OpenResty處理額外的請求,而不是被第一個請求阻止?
您不提供任何代碼顯示我們如何發送子請求。我假設你使用像ngx.location.capture這樣的子請求發送到端點。對於並行運行的子請求,您應該使用https://github.com/openresty/lua-nginx-module#ngxlocationcapture_multi API。 –
我沒有使用ngx.location.capture。我使用兩個獨立的客戶端連接到同一臺服務器上的兩個不同端點。 – JeFf
@JeFi對不起,沒有理解你的用例,現在很清楚,看到我的回答如下 –