[Django]-Simple approach to launching background task in Django

8👍

If you’re willing to install a 3rd party library, but you want something a whole lot simpler than Celery, check out Redis Queue. It does require Redis, which is pretty easy in itself, but that can provide a lot of other benefits as well.

RQ itself has almost zero configuration. It’s startlingly simple.

References:

67👍

Just use a thread.

import threading

t = threading.Thread(target=long_process,
                            args=args,
                            kwargs=kwargs)
t.setDaemon(True)
t.start()
return HttpResponse()

See this question for more details:
Can Django do multi-thread works?

18👍

Have a look at django-background-tasks – it does exactly what you need and doesn’t need any additional services to be running like RabbitMQ or Redis. It manages a task queue in the database and has a Django management command which you can run once or as a cron job.

Leave a comment