I have a project where we make a request from an iPhone client to our API, the api spawns an ironworker task, if the task completes it notifies the iPhone client and several Android phones that all went well and they should all connect to a socket. All this needs to happen in 30 seconds and if not then the iPhones and Android phones should not get a socket connection and instead get a response saying "Sorry try again later".
But what is happening sometimes is that our worker queue, ironworker, is getting backed up and it is taking 2 to 5 minutes to finish the tasks (jobs). What is the best way to not let this happen? Can a manager be introduced some how to watch the jobs in the queue and if they take to long kill the jobs and send out the "sorry try again later"?
If a manager is not the solution how would I go about setting this up?