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.

I am trying to find the best way to implement a subprocess into a Django application. To be more specific:

* The process will be run from one view (asynchronously) and handled from another.
* The process can run up to several hours.
* Multiple instances of the same process/program should be able to run at the same time.
* Other than knowing when the process is completed (or if it crashed, so it can be re-run), no communication with it is needed.

Does anyone know which way would be the best to implement this? Would any of the Python modules (such as `subprocess`, `threads`, `multiprocessing`, `spawn`) be able to achieve this or would I have to implement an external task queue such as Celery?