Ouch. Sorry about that. Buffer overflow? No, this is perl. Curses.
Well, it seems likely that the problems are related to mod_perl's fun and games with stdin/stdout. <googles> Is this any good to you? "Apache2::SubProcess provides the Perl API for running and communicating with processes spawned from mod_perl handlers."
And if it does all end up too painful, you can still use file-based queueing with a long-lived process. Have a droppoff dir for a work queue to the long-running gs and a pickup queue for finished pages. You'll need a little wrapper around ghostscript, but it would be started as an independent daemon.
File-based queueing does involve some tedious details though:
- Be sure to write to a temp file and rename(), to avoid half-written files (on both queues)
- You have a new failure mode where the ghostscript daemon isn't running and stuff just builds up in the out queue.
|