Empresas
Empleos
  • Sobre nosotros
  • Soluciones
    • Publicación de vacantes
      Publica tu vacante y recibe candidatos calificados en 48h.
    • Evaluación de candidatos
      500+ pruebas técnicas y psicológicas, más anti-fraude.
    • Headhunting
      Búsqueda ejecutiva a la medida de principio a fin.
    • Nómina + EOR
      Dispersión de nómina y EOR en más de 15 países de LATAM.
  • Precios
  • Empleos

0

265
Vistas
¿Cómo integrar Faust con Django?

Estoy tratando de integrar Faust con Django para publicar los mensajes en Kafka. Aquí está el ejemplo en el repositorio de Faust: https://github.com/robinhood/faust/tree/master/examples/django

Lo modifiqué un poco y creé vistas para enviar datos a Kafka a través de Faust.

 from django.shortcuts import render from asgiref.sync import async_to_sync from accounts.agents import AccountRecord, add_account async def send_data() -> None: print("sending..data") print(await add_account.ask(AccountRecord(name="tesst", score=10.9, active=False))) def index(request): async_to_sync(send_data)() return render(request, "accounts/index.html")

Pero ahora me sale este error:

RuntimeError en / Tarea <Tarea pendiente nombre='Tarea-1' coro=<AsyncToSync.main_wrap() ejecutándose en /Users/mysuer/.pyenv/versions/3.8.3/envs/faustdjango/lib/python3.8/site- packages/asgiref/sync.py:204> cb=[_run_until_complete_cb() en /Users/mysuer/.pyenv/versions/3.8.3/lib/python3.8/asyncio/base_events.py:184]> obtuvo Future adjunto a un bucle diferente

Estoy ejecutando esta aplicación Django usando un servidor de desarrollo. ¿Qué estoy haciendo mal? ¿Alguien? :)

over 4 years ago · Santiago Trujillo
1 Respuestas
Responde la pregunta

0

Consulte la sección de preguntas frecuentes en la documentación de Faust

¿Puedo usar Faust con Django/Flask/etc.?

¡Sí! Use eventlet como puente para integrarse con asyncio .

Usando eventlet

Este enfoque funciona con cualquier biblioteca de bloqueo de Python que pueda funcionar con eventlet .

El uso eventlet requiere que instale el módulo aioeventlet , y puede instalarlo como un paquete junto con Faust:

 $ pip install -U faust[eventlet]

Luego, para usar eventlet como el bucle de eventos, debe usar el argumento -L <faust --loop> para el programa faust :

 $ faust -L eventlet -A myproj worker -l info

o agrega import mode.loop.eventlet en la parte superior de tu script de punto de entrada:

 #!/usr/bin/env python3 import mode.loop.eventlet # noqa

Advertencia Es muy importante que esté en la parte superior del módulo y que se ejecute antes de importar bibliotecas.

over 4 years ago · Santiago Trujillo Denunciar
Responde la pregunta
Encuentra empleos remotos

¡Descubre la nueva forma de encontrar empleo!

Top de empleos
Top categorías de empleo
Empresas
Publicar vacante Precios Comercial
Legal
Términos y condiciones Política de privacidad
© 2026 PeakU Inc. All Rights Reserved.
Andres GPT
Recomiéndame algunas ofertas
Necesito ayuda