Weird IPC/Apache issue
Randy J. Ray
rjray at blackperl.com
Wed Jan 20 18:22:53 GMT 2010
Mark Fowler wrote:
> On Tue, Jan 19, 2010 at 10:21 PM, Matt Lawrence
> <matt.lawrence at virgin.net> wrote:
>
>> In my limited experience, running any subprocess in mod_perl is fraught with
>> difficulty
>
> Another option is not to actually run the process from Apache2 at all,
> but rather have a separate long running daemon that handles the
> execution for you which you hand off work to from Apache2, thus
> avoiding the need to fork at all. This is most useful as forking new
> processes is quite expensive and a bunch of unplanned forks without
> rate limiting could be used to DoS your site.
Initially, I drew up a plan for a daemon-ish Perl module that would handle
requests and filter the text through bogofilter. But the way bogofilter wants
to run off of the command-line doesn't help the matter. It's not impossible,
but it isn't easy (or clear, or even just mildly-challenging) either.
I solved the problem by using IPC::Run, which works under Apache2/mod_perl2 as
well as non-Apache environments. It's a neat little module (that I blogged
about a while back), that does things in a nicely Perlish way.
> Of course, you've just asked "how do I do this simple thing X" and
> I've said "Do this more complex thing to your architecture Y", but
> that's the nature of advice on the internet ;-)
True, but it closely parallels the design I've already been toying with, so
there is some reassurance there. At least I was thinking along similar lines
(though I hadn't considered Gearman or other tools).
Randy
--
"""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""
Randy J. Ray Sunnyvale, CA http://www.rjray.org rjray at blackperl.com
Silicon Valley Scale Modelers: http://www.svsm.org
More information about the london.pm
mailing list