|Perl Monk, Perl Meditation|
Re^3: SOAP::LITE client timeout makes ALL my Catalyst app to waitby Anonymous Monk
|on Jun 25, 2012 at 08:13 UTC||Need Help??|
But there are some points where data MUST come from a remote WSDL service, and these points have become dangerous bottlenecks, because when that remote server goes down o delays its response, ALL THE APPLICATION waits until that process reach timeout or serves the response.
But you, yourself, said, it tries to contact remote remote SOAP server before every function/runmode -- a self imposed bottleneck.
There is no setting or trick or anything to change inside of SOAP::Lite or Catalyst to fix this problem.
You must fix it in your application.
Maybe it sounds too simple, but no, I'm not trying to be funny (: its me again Catalyst (app_)server.pl hangs a lot:)
And now for the joke A tiger broke his
Think of it a different way, instead of remote soap server, what would you do if it was local database (mysql) server?
Either your app waits and makes your user waits, or it quickly informs the user "here is some cached data" or "sorry, busy now, refresh me in a minute.
I don't have a link handy, but I remember reading an article (about reddit?) where they learned users hate to wait more than they hate old data or an error message, so cache lots of data.
Also worth reading are The Architecture of Open Source Applications (Volume 2): Scalable Web Architecture and Distributed Systems and mod_perl: Building a Large-Scale E-commerce site with Apache and mod_perl