Продолжение работы скрипта lua после отдачи ngx.HTTP_OK

Alex Aster rusnginx на gmail.com
Сб Сен 5 10:39:45 UTC 2015


Добрый день всем,

возможно есть у сообщества какие идеи, как заставить lua скрипт продолжить
работать, после
того как отослать клиенту ngx.exit(ngx.HTTP_OK)

Идея такая что основная часть логики (дальнейшее проксирование) выносится
на момент когда клиенту уже отослать ответ и закрыть соединение.

Клиент в итоге получает очень быстрый ответ, а медленная
логика/проксирование (уже ничего отсылать не надо клиенту) обрабатывается
уже после.

Как пример такое:

local ngx = require 'ngx'
local cjson = require "cjson"
local value = cjson.new().decode(ngx.var.request_body)
ngx.header["Content-Type"] = "application/json"
ngx.say('{"result":true}')
ngx.exit(ngx.HTTP_OK)
...здесь дальнейшая работа с value и отправка дальше, возможно и через
"ngx.location.capture" и через сокеты на другие сервера...


Понятно что если ngx.exit запускается, то дальнейший скрипт не работает.
Чем его можно заменить (клиентское соединение закрыть и скрипт продолжает
работать)?
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://mailman.nginx.org/pipermail/nginx-ru/attachments/20150905/70005267/attachment.html>


Подробная информация о списке рассылки nginx-ru