Performance: Signal dispatch process
MEDIUM IMPACT
This affects server response time and request handling speed by adding synchronous or asynchronous signal processing overhead.
from django.db.models.signals import post_save from django.dispatch import receiver from django.contrib.auth.models import User from myapp.tasks import async_heavy_task @receiver(post_save, sender=User) def trigger_async_task(sender, instance, **kwargs): # Delegate heavy work to async task async_heavy_task.delay(instance.id)
from django.db.models.signals import post_save from django.dispatch import receiver from django.contrib.auth.models import User @receiver(post_save, sender=User) def heavy_task(sender, instance, **kwargs): # Heavy synchronous processing import time time.sleep(5) # Simulate long task print('User created:', instance)
| Pattern | DOM Operations | Reflows | Paint Cost | Verdict |
|---|---|---|---|---|
| Synchronous heavy signal handler | 0 (server-side) | 0 (server-side) | 0 (server-side) | [X] Bad |
| Asynchronous signal handler with background task | 0 (server-side) | 0 (server-side) | 0 (server-side) | [OK] Good |