Business
Jobs
  • About Us
  • Solutions
    • Job Postings
      Post your job and receive qualified candidates in 48h.
    • Candidate Assessments
      500+ technical and psychological tests, plus anti-fraud.
    • Headhunting
      Tailor-made executive search from start to finish.
    • Payroll + EOR
      Payroll dispersal and EOR across 15+ LATAM countries.
  • Pricing
  • Jobs

0

940
Views
Python: clase de tareas FastAPI y Celery. NotImplementedError: no se ha configurado ningún backend de resultados

Estoy desarrollando una API donde los usuarios pueden enviarme solicitudes POST. Cuando se reciben solicitudes, quiero una cola para procesarlas.

Cuando mis solicitudes de datos se envían a la cola de apio, quiero que mis trabajadores (servidor remoto) manejen sus.

Para esto, uso:

  • apio versión 5.1.0 para trabajadores
  • RabbitMQ versión 3.9 para mensajes

Quiero que mi código siga los métodos de programación de clases , por lo que me gustaría usar la clase Celery.Task.

Mi código a continuación:

  • server.py : es mi aplicación FASTAPI y puntos finales. Debería manejar mi tarea llamada cliente .
  • tareas.py : es mi instancia de celery.Celery y clases de celery.Task.
 # server.py # Module imports from fastapi import ( FastAPI, Request ) from fastapi.responses import ( JSONResponse ) import uvicorn # Own module from tasks import ( client, add ) # Environment app = FastAPI() # Endpoints @app.post('/post/{name}') def get_post(request: Request, name: str): result_not_working = client.delay(1, 2) # Not working result_working = add.delay(1, 2) # Working return JSONResponse(status_code=200, content={"status": 200, "message": f"You post {result.get()}"}) if __name__ == "__main__": uvicorn.run(app, host='', port=) # tasks.py from celery import ( Celery, Task ) # Environment app = Celery('test_celery', broker=f"amqp://RABBITMQ_USER:RABBITMQ_PWD@RABBITMQ_HOST:RABBITMQ_PORT/RABBITMQ_DB", backend='rpc://') # Class class Client(Task): name = "tasks.PandasClient" def run(self, x, y, **kwargs): return x + y @app.task(name="add") def add(x, y): return x + y client = Client() app.tasks.register(client)

Ahí está mi problema: cuando llamé a mi objeto de cliente en server.py (el cliente es una instancia de Cliente, que está registrada en mi cola de Apio), aparece el error:

NotImplementedError: no se configuró ningún backend de resultados.

PERO cuando importo y llamo a mi función de agregar en server.py, funciona sin problemas.

Cosa extraña, cuando ejecuto mi trabajador con el comando apio -A tareas trabajador --loglevel=info , puedo ver:

ingrese la descripción de la imagen aquí

Me dice que la URL de mi corredor está configurada correctamente, entonces, ¿por qué no mi backend (que funciona cuando llamo a la función y no agrego la clase Client.run)

La documentación no explica cómo construir la clase Task

over 4 years ago · Santiago Trujillo
1 answers
Answer question

0

encontré la solución,

en lugar de registrar mi tarea con:

 app.tasks.register(client)

Escribí:

 app.register_task(client)

y funciona.

over 4 years ago · Santiago Trujillo Report
Answer question
Find remote jobs

Discover the new way to find a job!

Top jobs
Top job categories
Business
Post vacancy Pricing Sales
Legal
Terms and conditions Privacy policy
© 2026 PeakU Inc. All Rights Reserved.
Andres GPT
Show me some job opportunities
There's an error!