Добрый день! Я думаю стоит вынести обработчик в отдельную "нить". Поместить данные к примеру в словарик ngx.shared.DICT, а обработку продолжить асинхронно в корутине. Мне кажеться стоит копать в сторону http://wiki.nginx.org/HttpLuaModule#coroutine.create
05.09.2015, 13:40, "Alex Aster" <[email protected]>: > Добрый день всем, > > возможно есть у сообщества какие идеи, как заставить 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 запускается, то дальнейший скрипт не работает. Чем > его можно заменить (клиентское соединение закрыть и скрипт продолжает > работать)? > , > > _______________________________________________ > nginx-ru mailing list > [email protected] > http://mailman.nginx.org/mailman/listinfo/nginx-ru -- С уважением, Владимир. [email protected] _______________________________________________ nginx-ru mailing list [email protected] http://mailman.nginx.org/mailman/listinfo/nginx-ru
