Поймать сигнал Джанго от сельдерея - PullRequest
0 голосов
/ 27 ноября 2018

Поймать сигнал джанго, отправленный с задания сельдерея.Является ли это возможным?Насколько я знаю, они работают в разных процессах

@celery.task
def my_task():
    ...
    custom_signal.send()

@receiver(custom_signal)
def my_signal_handler():
    ...

1 Ответ

0 голосов
/ 27 ноября 2018

Помните, что ваша асинхронная задача должна быть декоратором @shared_task.для вызова извне, так как он не будет привязан к конкретному экземпляру приложения. Документация @shared_task сельдерея

task.py

@shared_task
def send_email(email):
    # Do logic for sending email or other task

signal.py

asниже вы можете увидеть, что это будет выполняться только тогда, когда post_save (после того, как пользователь выполнит сохранение) для модели Contract в вашем случае будет любой другой моделью, которую он выполняет.

@receiver(post_save, sender=Contract)
def inflation_signal(sender, **kwargs):
    if kwargs['created']:
        send_email.delay('mymail@example.com')
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...