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

Vadim A. Misbakh-Soloviov mva на mva.name
Сб Сен 5 10:58:13 UTC 2015


Причём, советую дочитать до конца. Там есть отсылка к более правильному 
способу решения вашей задачи.

В письме от Сб, 5 сентября 2015 12:39:45 пользователь Alex Aster написал:
> Добрый день всем,
> 
> возможно есть у сообщества какие идеи, как заставить 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 запускается, то дальнейший скрипт не работает.
> Чем его можно заменить (клиентское соединение закрыть и скрипт продолжает
> работать)?

-- 
Best regards,
mva
----------- следущая часть -----------
Вложение не в текстовом формате было извлечено…
Имя: signature.asc
Тип: application/pgp-signature
Размер: 819 байтов
Описание: This is a digitally signed message part.
URL: <http://mailman.nginx.org/pipermail/nginx-ru/attachments/20150905/34d1bf1d/attachment.bin>


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