Я хочу преобразовать свою доморощенную систему очередей задач в очередь задач на основе Celery, но в настоящее время у меня есть одна особенность, которая вызывает у меня некоторое беспокойство.
Сейчас моя очередь задач работает очень грубо;Я запускаю задание (которое генерирует данные и загружает их на другой сервер), собираю протоколирование, используя вариант в библиотеке захвата журналов Nose, и затем сохраняю протоколирование для задачи как подробную запись результата в базе данных приложения.
Я хотел бы разбить это на три задачи:
- собрать данные
- загрузить данные
- результаты отчета (включая все записи из предыдущих двух задач))
Настоящим кикером здесь является сбор журналов.Прямо сейчас, используя захват журнала, у меня есть серия записей журнала для каждого вызова журнала, сделанного во время процесса генерации и загрузки данных.Они необходимы для диагностических целей.Учитывая, что задачи даже не гарантированно выполняются в одном и том же процессе, неясно, как бы я выполнял это в очереди задач Celery.
Моим идеальным решением этой проблемы будет тривиальный и в идеале минимально инвазивный метод.захвата всех журналов во время задач предшественника (1, 2) и обеспечения их доступности для задачи репортера (3)
Лучше ли я оставаться довольно грубым с моим определением задачи и помещать всю эту работув одном задании?или есть способ передать существующее захваченное логирование, чтобы собрать его в конце?