title: Best way to implement long running subprocess in Django?
body: <p>I know there are many questions similar to this one, but as far as my research has taken me, none of them answers my specific question. I hope you will take your time to help me out, as I have been struggling with this for days without finding a proper answer.</p>
  
  <p>I am trying to find the best way to implement a subprocess into a Django application. To be more specific:</p>
  
  <ul>
  <li>The process will be run from one view (asynchronously) and handled from another.</li>
  <li>The process can run up to several hours.</li>
  <li>Multiple instances of the same process/program should be able to run at the same time.</li>
  <li>Other than knowing when the process is completed (or if it crashed, so it can be re-run), no communication with it is needed.</li>
  </ul>
  
  <p>Does anyone know which way would be the best to implement this? Would any of the Python modules (such as <code>subprocess</code>, <code>threads</code>, <code>multiprocessing</code>, <code>spawn</code>) be able to achieve this or would I have to implement an external task queue such as Celery?</p>