Django сигналы / система уведомлений

Является ли хорошим подходом использование сигналов Django для реализации системы уведомлений по электронной почте? У меня есть CustomUser модель, связанная с CustomUserPreferences, которая планируется следующим образом:

class CustomUserPreferences(models.Model):
    user = models.OneToOneField(settings.AUTH_USER_MODEL, default=None, on_delete = models.CASCADE, primary_key = True)
    lesson_notification = models.BooleanField(default=True)
    journal_notification = models.BooleanField(default=False)
    login_notification = models.BooleanField(default=False)
    excercise_notification = models.BooleanField(default=False)
    homework_notification = models.BooleanField(default=True)


class CustomUser(AbstractUser):
    ...
    email = models.EmailField(_('email address'), unique=True)
    preferences = models.OneToOneField(CustomUserPreferences, null = True ,default=None, on_delete = models.CASCADE)
    students = models.ManyToManyField(to = 'self', related_name = 'teachers', symmetrical = False, blank = True)

Когда создается новый объект, скажем Lesson, я хочу отправить пользователю электронное письмо, и это нормально - потому что это не перегрузит ни один сервер.

Вопрос в том, окупится ли использование сигналов для списка пользователей, который содержит, скажем, 100 или 1000 пользователей? Я боюсь, что это замедлит работу всего приложения.

Есть ли другой "ясный и элегантный" способ сделать это? Django docs советует не использовать сигналы, когда это возможно.

Вернуться на верх