Хранение информации журнала из задачи Celery в базе данных Django - PullRequest
0 голосов
/ 04 июля 2019

Допустим, у меня есть следующая функция, которую я хочу периодически выполнять в Celery:

import logging
import requests

log = logging.getLogger(__name__)


def spam():
    data = fetch_some_data()
    log.info(f'Fetched {len(data)} data')

    stuff = []
    for item in data:
        try:
            response = requests.get(url + item)
            response.raise_for_status()
        except RequestException as exc:
            log.error(f'Error when requesting {item}: {exc}')
            continue

        stuff.append(response.text)

    for item in stuff:
        do_something(item)
    log.info(f'Processed {len(stuff)} items')

Когда выполняется сопровождающее задание:

from hello import spam

@app.task
def run():
    spam()

Я хотел бы увидетьрезультат задачи сохраняется вместе с зарегистрированными сообщениями.Например, Цветок может отображать ход выполнения и историю задачи , но я хотел бы добавить информацию регистрации в виде отдельных полей (например, «Информационные сообщения» и «Сообщения об ошибках»).Аналогичным образом, если использовать django-celery-results , он может отображать ту же информацию в представлении администратора Django.

Каков наилучший способ добиться этого?

...