Depends on what "processing" means. Generally, this will not be reliable if processing means using a Rails stack - since a master process freed up by request can be assigned to another passenger request, and everything can go wrong. Also, the Passenger can disable the master process and, thus, the Rails instance in some conditions (reducing the pool of unused instances, etc.).
Typically, this can lead to a process leak, unexpected locks, race conditions, application errors when shutting down, etc.
I would suggest using workers working outside the Apache / Passenger stack, for example. using clustered BackgrounDRb or another solution (you mentioned Resque).
There is another idea that I am currently using to work cron with my application. My crontab is just a few wget for action with long jobs. You can do something similar in an OpenURI ruby fork on request. Imagine an application pinging over HTTP. The Rails process no longer needs the Forked process β it just accesses the task page, and the next Passenger serves the request and manages the application instance for this special request.
If the passenger kills the parent of the fork and, therefore, the process branches, another Rails instance should continue to process the http request.
source share