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/