[Django]-Execute background process from django that can't be interrupted by the web server

2👍

Maybe less elegant, but definitely most simple, I scheduled my process for “now” with the at command. Done.

os.system("echo '/usr/bin/python /(somewhere)/scripts/backup/testbackup.py' | at now")

8👍

You need to use a completely separate process for the backup. The best way to do this is to use a message queue – the view puts the backup request on the queue, and a separate listener picks it up and runs the backup, independently of Apache.

Celery is a distributed task manager that deals with all this for you, although it would be fairly easy to roll your own with RabbitMQ and the Python AMQP library.

Leave a comment