[Catalyst] working around request timeouts
Tomas Doran
bobtfish at bobtfish.net
Tue Aug 21 19:44:56 GMT 2012
On 21 Aug 2012, at 17:54, James R. Leu wrote:
> Chakkit et. al.
>
> Catalyst::Plugin::RunAfterRequest ended up being the easiest first step.
> Thank you Chakkit, for the suggestion.
>
> Now that I have this implemented I'm seeing why a work queue system
> is needed if this fix needs to be more then an interim solution.
> I quickly use up all the child processes, and simply adding more children
> process will not scale.
>
> My thought is to implement a hybrid work queue Run after Request (RaR)
> system. Where the work queue contains the closures that would
> normally be handed to RaR.
Why? I mean, you need very minimal info here - you need to persist a 'work to do' thing to the DB, just log that to a message queue (where something picks it up later).. The message is very minimal, like { type => "Job::FooBar", id => "xxxx" }
Much simpler and easier + lower coupling - the stuff that implements the job can change independently of the app.
Cheers
t0m
More information about the Catalyst
mailing list