Performance: Connecting signal handlers
MEDIUM IMPACT
This affects the server-side processing time and can indirectly impact page load speed by delaying response generation.
from django.apps import AppConfig class MyAppConfig(AppConfig): name = 'myapp' def ready(self): import myapp.signals # connects handlers once # In myapp/signals.py from django.db.models.signals import post_save from django.dispatch import receiver @receiver(post_save, sender=MyModel) def my_handler(sender, instance, **kwargs): # heavy processing here pass
from django.db.models.signals import post_save from django.dispatch import receiver @receiver(post_save, sender=MyModel) def my_handler(sender, instance, **kwargs): # heavy processing here pass # Importing this module in multiple places triggers multiple connections
| Pattern | Handler Calls | CPU Usage | Response Delay | Verdict |
|---|---|---|---|---|
| Multiple signal connections | Multiple per event | High | Increased | [X] Bad |
| Single connection in AppConfig.ready | One per event | Low | Minimal | [OK] Good |