Я собираюсь предварительно ответить на свой вопрос «нет» — и надеюсь, что кто-то более знающий, чем я, вернется с решением.
После более внимательного изучения документации Celery я подумал, что просто нет способа получить доступ к аргументам, с которыми была вызвана родительская задача. Согласно документации:
За время своего существования задача будет проходить через несколько возможных состояний, и к каждому состоянию могут быть присоединены произвольные метаданные. Когда задача переходит в новое состояние, о предыдущем состоянии забывают.
Задача может находиться в одном из следующих состояний: "Ожидание", "Начато", "Успешно", "Ошибка", "Повторить попытку" и "Отменено". Для моего сценария ключевым здесь, по-видимому, будет состояние Success. Что я хочу сделать, так это для данной успешной задачи найти идентификатор (одной из ее) родительской задачи (задач), а затем просмотреть аргументы, с которыми был вызван родитель. Однако, согласно документации, задача в состоянии SUCCESS не будет содержать таких данных (поскольку сама родительская задача будет успешной, поскольку породила дочернюю задачу):
УСПЕХ Задача успешно выполнена.
метаданные: результат содержит возвращаемое значение задачи. распространяется: да готово: да
Другими словами, казалось бы, здесь есть жесткий предел. Даже если я смогу найти идентификатор интересующей меня родительской задачи, поскольку она была успешно выполнена, я по определению не смогу получить доступ к аргументам, с которыми она была вызвана, поскольку она содержит только возвращаемое значение (а не ее значение). аргументы).
18.02.2013