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,