I made a management command that populates one of my models from a csv file.
I need to do this update quite frequently and the csv files have tens of thousands of lines.
Use Celery
Rougly, it may look like this:
app = Celery()
@app.task(name='my_task')
def my_task(self):
do_stuff()
def my_view(*args, **kwargs):
result = process_request()
app.send_task('my_task')
You'll need to create the task, register it with celery (there is some autodiscover magic you can use), then run the task asynchronously from your django app.
In production, you may want to run celery as a daemon process with celeryd