title: Rest API alternative to polling for asynchronous long running tasks
body: <p>I have created a flask restplus API that accepts xlsx file as input and returns an XML. This would be consumed internally by our different APIs</p>
  
  <p>The current flow:</p>
  
  <ul>
  <li>Users POST an xlsx file by calling /upload endpoint.</li>
  <li>API accepts the file, stores it and returns a file id.</li>
  <li>User sends another request to /run by providing the file id for
  processing</li>
  <li>API puts the request in rabbitMQ queue and returns 202 with a
  location URL To poll for the status.</li>
  <li>celery worker picks up the request and start processing it. It takes
  a while to complete.</li>
  <li>Meanwhile user can poll for the status</li>
  <li>Once completed, API sends 303, with an another location URL to
  download the file.</li>
  <li>User hits the new URL to download the file.</li>
  </ul>
  
  <p>However, our architect team is not in the favor of giving polling mechanism for the client and asking us to take another approach, may be a callback URL.
  They have a say in it - "busy wait with sleep to check whether task is completed, is not a good programming practice."</p>
  
  <p>I would like to know  is there any different approach client can take without having a polling for the status. Callback is the one i am aware  of but it's not in place yet.</p>