|
Posted by Erwin Moller on 07/27/06 08:50
yawnmoth wrote:
> Is it possible to send http requests with curl but not have curl wait
> for the response?
>
> The reason I ask is because I'd like to code a web app that can sorta
> start time consuming processes without the user having to wait. I'm
> doing this (with fsockopen) by sending an http request to a page that
> does the time consuming stuff and then immediatly closing, without
> having read any of the response. This way, I don't have to wait for
> the response.
>
> Is it possible to do the same thing with curl? Sending just HEAD
> requests doesn't work since it'd seem that the response (which I don't
> yet know how to disable, if possible) is only sent at the end of the
> pages execution. This might be a mod_gzip issue, but I'd rather use
> fsockopen then disable mod_gzip.
>
> Any ideas?
Hi yawnmoth,
I think the best approach is to leave CURL and normal tcp/ip interaction
intact. This means: wait for the response.
In that way you actually know that system that performs the calculations is
up and running.
You can however make the heavycalc-script return its response immediately,
and THEN do the calculations.
Maybe someone has a more ellegant solution out there, but this could work:
1) use ob_start() at top of script
2) send a header telling the browser/CURL to go away:
header("Location: bla.html");
where bla.html is a small useless file. Maybe containing only 'doing calc'
or something.
3) flush it to the browser/CURL: ob_flush();
I expect as far as CULR is concerned, the respons ended, but you first
script can now continue doing your calculations.
Do not produce any output from here. Not sure where it goes if you do. :-)
Not tested. I think I solved that problem once like this. But it is quickly
tested by you. Please let us know if it works.
just my 2 cent
Regards,
Erwin Moller
Navigation:
[Reply to this message]
|