Python: Как заставить асиновый генератор c ожидать вызова другой функции - PullRequest
0 голосов
/ 04 мая 2020

Я работаю с Django и Graphql, используя Ariadne (новая библиотека python graphql, которая поддерживает подписки с использованием каналов) и Django каналы. Я хочу подписаться на изменения в модели, которые можно сделать с помощью Django сигналов, но я не могу связать их вместе.

Моя функция приема сигнала:

@receiver(post_save, sender=get_user_model())
def user_handler(sender, instance, **kwargs):
   print("======> Signal Called")
   return instance

Мои обработчики подписки :

@subscription.source("counter")
async def counter_generator(obj, info):
    user = await this_needs_to_be_implemented()
    yield user


@subscription.field("counter")
def counter_resolver(count, info):
    print("count ====> ", count)
    return count + 1

Примечание: генератор счетчика имеет асинхронную функцию.

...