Сигнал Поймай Джанго отправляется с сельдереем задачи

голоса
0

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

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

@receiver(custom_signal)
def my_signal_handler():
    ...
Задан 27/11/2018 в 15:04
источник пользователем
На других языках...                            


1 ответов

голоса
0

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

task.py

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

signal.py

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

@receiver(post_save, sender=Contract)
def inflation_signal(sender, **kwargs):
    if kwargs['created']:
        send_email.delay('mymail@example.com')
Ответил 27/11/2018 в 15:48
источник пользователем

Cookies help us deliver our services. By using our services, you agree to our use of cookies. Learn more