How do Django signals work?
Django signals are synchronous. The handlers are executed as soon as the signal is fired, and control returns only when all appropriate handlers have finished.
How does Django's event routing system work?