this should provide some starting points:
https://blog.miguelgrinberg.com/post/the-flask-mega-tutorial-part-xxii-background-jobs
- background processes
- task complete/not complete state can be stored, used to present spinning wheel or something
- could be used to block/queue ingests if one is already running from another user