Execute System command asynchronously in Controller->Action

My contoller -> action executes the ruby script on click of a button
using System command.
Ruby Script takes 30seconds to execute.

If two users clicks the button same time in two separate browsers,
second user execution will start after first user's reqeust is
completed.

I need suggestion how to handle this ?

Also is it possible to skip the script execution if it is already
started by other user ?

Thanks in advance....

Hi,

Two things about your problem ...

1st - The behavior that you are describing should only apply to your
dev environment since you should be able to set up your production
server to manage more than a single request at time. Anyways, there's
always a solution regardless of the environment like...

2nd - Try one of the backgrounders that ruby have right now like:
backgroundrb - http://backgroundrb.rubyforge.org/
delayed_jobs - http://github.com/collectiveidea/delayed_job
resque (my favorite :D) - http://github.com/defunkt/resque

They will let you run your system calls as background processes
without increasing your response time.

Regards,