sql >> Database teknologi >  >> NoSQL >> Redis

DisabledBackend:Uregelmæssig adfærd med selleri, Redis &Flask

Så det ser ud til, at jeg skal have adgang til AsyncResult kun via min Celery-app-forekomst i stedet for gennem Celery, eller send Celery-appen som et argument.

Så dette virker ikke:

from celery.result import AsyncResult

@app.route('/status/<task_id>')
def get_status(task_id):
    task = AsyncResult(task_id)
    return task.state

Dette virker:

from app import my_celery # Your own Celery Application Instance

@app.route('/status/<task_id>')
def get_status(task_id):
    task = my_celery.AsyncResult(task_id)
    return task.state

Dette virker også:

from app import my_celery
from celery.result import AsyncResult

@app.route('/status/<task_id>')
def get_status(task_id):
    task = AsyncResult(task_id, app=my_celery)
    return task.state

Jeg gætter på, at det, der sker, er ved at kalde AsyncResult direkte fra Celery, får den ikke adgang til Celerys konfigurationer, og derfor mener den, at der ikke er nogen backend konfigureret til at forespørge resultater til.

Men det ville kun forklare fuldstændig fejl i funktionen, og ikke den uberegnelige adfærd. Jeg gætter på, at dette er på grund af forskellige tråde og situationer, hvor app-forekomsten er vigtig, så Selleri finder det, men ikke helt sikker.

Jeg har kørt et par test og ser ud til at fungere fint igen efter at have ændret det importerede AsyncResult , men jeg bliver ved med at grave.




  1. NodeJS + MongoDB:Henter data fra indsamling med findOne ()

  2. Indstil Cache Redis Expiration til 1 år

  3. Kunne ikke automatisk konfigurere en datakilde:'spring.datasource.url' er ikke angivet

  4. MongoDB Object.bsonSize()