Re: close connection for request, but continue

Iosif Fettich <[email protected]>
Newsgroups gmane.comp.apache.mod-perl
Message-ID <[email protected]>
Hi Perrin,

>> I'm trying to achieve the following: when there is an incoming request, I
>> want to set a time limit in which an answer should be delivered to the
>> client, no matter what.
>>
>> However, since the work triggered by the initial request (there is another
>> request to other site involved)  might take much longer than that time
>> limit, I want that work to properly finish, despite the fact that the
>> initial request was 'served' already.
>
>
> TMTOWTDI, but the common way to do this is to add the long-running job to a
> job queue, and then redirect the user to a page that periodically checks if
> the job is done by using JavaScript requests.

It's not such a typical long-running job that I'm doing. It rather goes 
like this: whereas I most of the time can answer with what I have within 
the acceptable answer time, I sometimes have to make another request in 
the background. That too most of the time is served within acceptable 
time; _sometimes_ it isn't, so only occasionally it takes more.

The clue: let's say the backend service is pay-per-use, so I definitely 
don't want to throw away a started request. If I have launched a request 
in the back, I'd want to get the results, even if the initial requester 
was turned down in the meantime.

> If you don't have a job queue and don't want to add one just for this, you
> could use a cleanup handler to run the slow stuff after disconnecting:
> http://perl.apache.org/docs/2.0/user/handlers/http.html#PerlCleanupHandler

I'm afraid that won't fit, actually. It's not a typical Cleanup I'm after 
- I actually want to not abandon the request I've started, just for 
closing the incoming original request. The cleanup handler could relaunch 
the slow back request - but doing so I'd pay twice for it.

> That will tie up a mod_perl process though, so it's not a good way to go
> for large sites.

I'm aware of that, but that's less of a concern for now.

Many thanks,

Iosif Fettich
lmpx.com only provides a reader for public news (NNTP) servers. It is not affiliated with the servers or forums shown here and is not responsible for the content of articles, which is written by their respective authors.