Nginx lua capture_multi fire and forget

Hi all,

We’re currently using the lua capture_multi to send production request
to
test systems.
And sometimes we also kind of ‘fork’ these request to multiple test
systems.

But if one of the test systems is slow to respond the lua code waits
till it
gets all responses.
And this is something we actually don’t like to have.

Is there a way to have the lua module launch the requests without
waiting
for the response?
It should fire the requests and continue directly afterwards and forget
about the response handling.
I could try and modify the lua module, but I’m not really familiar with
C/C++ coding.

Here’s a config sample:
http://pastebin.com/U5qgXCFh

Thanks in advance,
Pieter

Posted at Nginx Forum:
http://forum.nginx.org/read.php?2,244032,244032#msg-244032

Hello!

On Wed, Oct 23, 2013 at 2:46 AM, PieterVI wrote:

Is there a way to have the lua module launch the requests without waiting
for the response?
It should fire the requests and continue directly afterwards and forget
about the response handling.
I could try and modify the lua module, but I’m not really familiar with
C/C++ coding.

Completely forget the response handling is not a really good thing to
do here. You can, however, make the upstream requests and response
handling run in the “background” without adding any latency to your
downstream requests. Basically, you can just use ngx_lua’s timer API
and lua-resty-http-simple library for this:

https://github.com/chaoslawful/lua-nginx-module#ngxtimerat
https://github.com/bakins/lua-resty-http-simple

The only limitation (right now) is that lua-resty-http-simple does not
support https yet. Hopefully you don’t use it.

BTW, it looks like you’re trying to do something that tcpcopy may help
you:

https://github.com/wangbin579/tcpcopy

BTW 2: you may want to join the openresty-en mailing list for such
questions so that you may get faster responses:

https://groups.google.com/group/openresty-en

This is also recommended in ngx_lua’s official documentation:

https://github.com/chaoslawful/lua-nginx-module#community

Best regards,
-agentzh