Сельдерей: как получить метаданные из пользовательских состояний?
Пример для пользовательских состояний показывает, что метаданные могут быть сохранены:
http://docs.celeryproject.org/en/latest/userguide/tasks.html#custom-states
Какой API я могу использовать для извлечения метаданных, связанных с результатом?
Ответы
Ответ 1
Приведенный пример выглядит следующим образом:
@app.task(bind=True)
def upload_files(self, filenames):
for i, file in enumerate(filenames):
self.update_state(state='PROGRESS',
meta={'current': i, 'total': len(filenames)})
Когда вы настраиваете задачу, скажите
task = upload_files.delay(['happy.txt', 'sad.txt', ...])
Вы можете получить доступ к метаинформации через task.result
Надеюсь, что поможет
Ответ 2
Документы не дают понять, как получить метаданные из результата. Используйте AsyncResult.info.
>>> job = AsyncResult(job_id)
>>> print(job.info)
{'current': 2, 'total': 100}