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