Alex Beamish wrote:
The current solution is that we generate high resolution page images for the documents in question, and then resize them on the fly using mod_perl.

This solution works well locally, but the problem is that we also have a satellite office, and the VPN between the offices is not that great -- we get between 50K and 100K in bandwidth. When we're dealing with tens of thousands of pages, that's a fair bit of data to pass back and forth and to store. I currently have a daemon process that takes care of asynchronously rsyncing the page images to the satellite office.

Since it's just for small-scale use in a couple of offices, you could consider simpler solutions. The daemon ideas proposed so far are one good to solve the problem that your users will often hit different apache children in the same session. The daemon can keep the open ghostscript processes going and route requests from different mod_perl processes to the right one.

However, you could also avoid the problem by running only one apache process. Then you just keep the ghostscript handles open from mod_perl, and you don't need to code a daemon. If you serve a lot of other requests from this server that don't involve ghostscript, you might run this as a separate apache server and just proxy the requests for gs stuff to it, while handling the other stuff in a server running multiple processes.

I'm still troubled that you had problems with IPC::Run. It is supposed to work with mod_perl, and has been used successfully by people on this list. It uses IO::Pty, and should be fine. Where did you get stuck with it? You weren't getting the debug output?

Can anyone here attest that IPC::Run works with mod_perl 2?

- Perrin

Reply via email to