Performance: Custom signals
MEDIUM IMPACT
Custom signals affect the server-side processing time and can indirectly impact page load speed if they trigger heavy operations during request handling.
from django.db.models.signals import post_save from django.dispatch import receiver from django.core.mail import send_mail import threading @receiver(post_save, sender=MyModel) def async_task(sender, instance, **kwargs): threading.Thread(target=send_mail, args=(...)).start()
from django.db.models.signals import post_save from django.dispatch import receiver import time @receiver(post_save, sender=MyModel) def heavy_task(sender, instance, **kwargs): # Heavy processing like sending emails or complex calculations time.sleep(5) # Simulate delay print('Heavy task done')
| Pattern | Server Processing | Blocking Time | Impact on LCP | Verdict |
|---|---|---|---|---|
| Synchronous heavy signal handler | High CPU and I/O | Blocks 5+ seconds | Delays LCP | [X] Bad |
| Asynchronous signal handler with threading | Low CPU main thread | Non-blocking | Improves LCP | [OK] Good |