Ich mache Fortschrittsbalken, aber "current_task.update_state()" funktioniert nicht !! Dies ist das einfache Beispiel meiner "task.py" -Definition.Sellerie update_state() funktioniert nicht
from celery import shared_task, current_task
@shared_task
def mytask(a):
list_A = [1, 2, 3]
result = []
for i in list_A:
m = a * i
result.append(m)
process_percent = int(100 * len(result)/len(list_A))
current_task.update_state(state='PROGRESS',
meta={'process_percent':process_percent})
return result
Wenn ich 'process_percent' mit AJAX verwende, ist es immer 'undefiniert'.
Und Status immer zurück "PENDING", aber das Ergebnis an der Sellerie-Konsole ("Sellerie -A myapp worker --loglevel = info --pool = Solo") zurückgeben
So kann ich das Ergebnis der Aufgabe sehen.
Aber ich weiß nicht, warum 'process_percent' nicht aktualisiert wird ....
Ich denke "current_task.update_state" funktioniert nicht ... Und das ist meine Sellerie-Einstellung.
import os
from celery import Celery
from django.conf import settings
os.environ.setdefault('DJANGO_SETTINGS_MODULE', 'myapp.settings')
app = Celery('myapp', broker='amqp://[email protected]:5672//', backend='amqp')
app.config_from_object('django.conf:settings')
app.autodiscover_tasks(lambda: settings.INSTALLED_APPS)