Agree. I assumed that client code can be changed to use queue tickets
instead of long-time requests, which isn't good anyway.

2012/8/21 Bill Moseley <mose...@hank.org>

>
>
> On Mon, Aug 20, 2012 at 12:10 PM, Sergey Dmitriev <
> sergey.program...@gmail.com> wrote:
>
>> Looks like what you need is the job queue. Take a look at
>>
>> Queue::DBI (https://metacpan.org/module/Queue::DBI) - simpler
>> TheSchwartz (https://metacpan.org/module/TheSchwartz)
>>
>
> Yes, and what about long polling?  Would that solve the ajax request
> timing out?  That is, have your client code get sent a message when the
> backend is done instead of waiting.
>
>
>
>>
>> Sergey
>>
>> 2012/8/20 James R. Leu <j...@mindspring.com>
>>
>>>  Hello all,
>>>
>>> Problem description
>>> ===================
>>> I have a catalyst application server that responds
>>> to 'API' requests for web applications via XHTMLRequests.
>>> Sometimes the requests are timing out due to the backend
>>> database queries taking too long.  I'm looking for ways to
>>> work around this and prevent the 'API' requests from
>>> timing out.
>>>
>>> I know some of the possible resolutions to this are
>>> - fix the queries
>>> - fix the database
>>> - frontend the RDBMS with NoSQL
>>>
>>> I'm working towards those fixes, but they are long
>>> term projects, I'm looking for an interim solution.
>>> That would notify the web application that it will
>>> need to come back later for the response (ie decouple
>>> request handling from the actual request/response).
>>>
>>> My attempt
>>> ==========
>>> In my handler I fork a child process.
>>>
>>> In the parent I send a response with a
>>> 'job id' so the web application knows
>>> to poll the 'API' for completion.
>>>
>>> In the child I close the IO socket so it cannot send
>>> a response and then let it finish processing the
>>> request, but it looks like I've lost my database
>>> connections so the request fails.
>>>
>>> My wish
>>> =======
>>> What I would like to do is avoid the fork and instead
>>> have the handler send an early response to the
>>> web application and then finish processing the request
>>> and not try to send a response when done.
>>>
>>> Is there a common term for what I'm trying to do
>>> like continuation or something like that?
>>> Has anyone already done this?
>>>
>>> Thank you for your time.
>>> --
>>> James R. Leu
>>> j...@mindspring.com
>>>
>>> _______________________________________________
>>> List: Catalyst@lists.scsys.co.uk
>>> Listinfo: http://lists.scsys.co.uk/cgi-bin/mailman/listinfo/catalyst
>>> Searchable archive:
>>> http://www.mail-archive.com/catalyst@lists.scsys.co.uk/
>>> Dev site: http://dev.catalyst.perl.org/
>>>
>>>
>>
>> _______________________________________________
>> List: Catalyst@lists.scsys.co.uk
>> Listinfo: http://lists.scsys.co.uk/cgi-bin/mailman/listinfo/catalyst
>> Searchable archive:
>> http://www.mail-archive.com/catalyst@lists.scsys.co.uk/
>> Dev site: http://dev.catalyst.perl.org/
>>
>>
>
>
> --
> Bill Moseley
> mose...@hank.org
>
> _______________________________________________
> List: Catalyst@lists.scsys.co.uk
> Listinfo: http://lists.scsys.co.uk/cgi-bin/mailman/listinfo/catalyst
> Searchable archive:
> http://www.mail-archive.com/catalyst@lists.scsys.co.uk/
> Dev site: http://dev.catalyst.perl.org/
>
>
_______________________________________________
List: Catalyst@lists.scsys.co.uk
Listinfo: http://lists.scsys.co.uk/cgi-bin/mailman/listinfo/catalyst
Searchable archive: http://www.mail-archive.com/catalyst@lists.scsys.co.uk/
Dev site: http://dev.catalyst.perl.org/

Reply via email to