私は進行状況バーを作成していますが、 "current_task.update_state()"は機能しません!! これは私の "task.py"定義の簡単な例です。Celery update_state()が動作しません
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
ajaxで 'process_percent'を使用すると、常に '未定義'になります。
ステータスは常に「PENDING」を返しますが、セロリコンソール(「セロリ-A myappワーカー--loglevel = info -pool = solo」)で 'result'を返します。
これでタスク結果が表示されます。
しかし、私は 'process_percent'が更新されない理由を知りません....
"current_task.update_state"は機能していないと思います... これはセロリの設定です。
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)