Fire and forget requests

Bradley Falzon brad at teambrad.net
Wed Aug 31 00:24:30 UTC 2011


We did notice similar functionality with PHP FPM

http://php.net/manual/en/install.fpm.php

*fastcgi_finish_request()* - special function to finish request and flush
all data while continuing to do something time-consuming (video converting,
stats processing etc.);

Alternatively, and the approach we're using is via Gearman message bus style
system.

On Wed, Aug 31, 2011 at 7:27 AM, Richard Kearsley <Richard.Kearsley at m247.com
> wrote:

>  I don’t believe nginx can do this since I think it’stoo linear in the way
> it processes the request****
>
> The way I would approach this is by using the httpd built into C# -
> HttpListener****
>
> Once you receive the initial request you can send 200 immediately then
> spawn a new thread with the request to your backend using HttpWebRequest**
> **
>
> Just some ideas… this is potentially very easy using C# - and I’m sure in
> quite a few other lanquages/scripts too****
>
> ** **
>
> *From:* nginx-bounces at nginx.org [mailto:nginx-bounces at nginx.org] *On
> Behalf Of *Guy Knights
> *Sent:* 30 August 2011 22:35
> *To:* nginx at nginx.org
> *Subject:* Fire and forget requests****
>
> ** **
>
> Hi,
>
> We have a very specific use case and are trying to find a solution for it.
> We started looking at nginx as a possibility for handling this use case as
> we already use nginx for some of our other webserver duties. I've done some
> testing and investigation but it doesn't seem like we can use nginx to do
> what we want. However I thought I'd check with the community before
> dismissing it completely.
>
> What we want is a fire and forget solution for request handling, where we
> can set up nginx to receive a request from our web servers, pass this
> request on to an external HTTP service or an HTTP backend and send a 200
> response back straight away to the requesting machine, leaving the original
> request to be handled at whatever speed the backend is capable of. We don't
> care about the response from the backend server; this can simply be dropped
> once it's received.
>
> Is something like the above possible? I did some testing by setting nginx
> up as a load balancer, pointing at a backend web server, and using the
> "return" directive before the proxy_pass directive but the return directive
> simply stops further execution of the request.
>
> Any advice would be welcome.
>
> Thanks,
> Guy****
>
> _______________________________________________
> nginx mailing list
> nginx at nginx.org
> http://mailman.nginx.org/mailman/listinfo/nginx
>
>


-- 
Bradley Falzon
brad at teambrad.net
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://mailman.nginx.org/pipermail/nginx/attachments/20110831/6986cbad/attachment.html>


More information about the nginx mailing list