Выполнить операцию модели Django после того, как ответ был отправлен с помощью структуры Rest. - PullRequest
1 голос
/ 29 июня 2019

Я создал очень простую установку со статьями и комментариями, в которой пользователи могут публиковать комментарии к статьям через API, созданный с помощью фреймворка Django Rest.

Пока все хорошо. Проблема в том, что у меня есть несколько дорогих операций, которые необходимо выполнить при создании комментария (например, отправка уведомлений по электронной почте), но я хотел бы, чтобы они выполнялись ПОСЛЕ ответа, поэтому пользователю не придется ждать .

class Comment(CommentBase):
article = models.ForeignKey(Article, on_delete=models.CASCADE)

def save(self, *args, **kwargs):
    #Expensive operations here, which should run after a response has been returned.
    super(Comment, self).save(*args, **kwargs)

Насколько я знаю, остальная среда не отправит ответ, пока не будет выполнено сохранение модели.

Как мне лучше всего выполнить операции после того, как ответ был возвращен? Могу ли я использовать пост-сигнал, или это то, что мне нужно сделать с сельдереем?

...