In one application I created, users had the ability to upload PDFs which were thumbnailed upon uploading to create the preview images. As the PDFs could be extremely large, thumbnailing could take a while and had to run in the background. To do this, I used
- Paperclip for the uploading,
- the delayed_paperclip gem to hand off thumbnailing to a background process,
- Resque, backed by Redis, to handle the worker queue, and
- the God gem, to launch the Redis and Resque workers and monitor the whole shebang.
On the plus side, you get the nifty Resque GUI to view your workers in action, and you've got God there to watch for (and kill, and restart) runaway processes (which tend to occur quite a bit when you're processing PDFs in ImageMagick), making the whole thing much more stable and reliable.
On the minus side, it's a heck of a lot harder to set up than a cron job. But having cron run a long, memory-intensive process unmonitored seems like a recipe for disaster to me.
Hope that helps!