(This question is a follow-up to [How do I handle long requests for a Rails App so other users are not delayed too much?](https://stackoverflow.com/questions/18083312/how-do-i-handle-long-requests-for-a-rails-app-so-other-users-are-not-delayed-too/18084109?noredirect=1#comment26470194_18084109) ) 

A user submits an answer to my Rails app and it gets checked in the back-end for up to 10 seconds. This would cause delays for all other users, so I'm trying out the [delayed\_job](https://github.com/collectiveidea/delayed_job) gem to move the checking to a Worker process. The Worker code returns the results back to the controller. However, the controller doesn't realize it's supposed to wait patiently for the results, so it causes an error. 

*How do I get the controller to wait for the results* and let the rest of the app handle simple requests meanwhile?  

In Javascript, one would use callbacks to call the function instead of returning a value. Should I do the same thing in Ruby and call back the controller from the Worker?

**Update:**  

Alternatively, how can I call a controller method from the Worker? Then I could just call the relevant actions when its done. 

This is the relevant code:

Controller:

```
def submit
  question = Question.find params[:question]
  user_answer = params[:user_answer]
  @result, @other_stuff = SubmitWorker.new.check(question, user_answer)
  render_ajax 
end

```

submit\_worker.rb : 

```
class SubmitWorker
 def check
   #lots of code... 
 end
 handle_asynchronously :check 
end

```