Я пытаюсь диагностировать это, но хочу выкинуть вопрос, если кто-нибудь видел что-то подобное.
По сути, я вижу AsyncResult (task_id), возвращающий результат с состоянием None.
Eeer ie.
Я использую rp c: backend.
Итак, я углубился в код Celery и очереди RabbitMQ, и с обоих углов я вижу, что сообщение о состоянии выглядит как это:
dict: {'task_id': 'STARTED', 'status': None, 'result': {'pid': 24113}, 'traceback': None, 'children': []}
Очевидно, поврежден. STARTED должен находиться под статусом.
Я даже имею некоторое представление о том, что является причиной этого, я просто должен доказать это и найти доказательства, и как это исправить. По меньшей мере, это трудоемко, и поэтому я бы с удовольствием: а) ускорил бы его, предложив бесплатный опыт, и б) записал его здесь, если я его решу, для потомства (в случае, если кто-нибудь еще столкнется с этим) .
Это может (возможно) быть связано с моим украшением задачи. вызов метода (). Но я застрял, пытаясь понять, как.
Драгоценный камень понимания - где в Celery сообщение о состоянии, отправленное в резервную очередь RP C? Похоже, это неправильно компилируется. До сих пор я проследил это до отправки события, запускаемого задачей, в обмен celerev (для событий, которые я представляю), и, возможно, это событие вызывает обновление состояния, которое будет отправлено.
Я продолжу копаться. Но пока я сплю, может быть, у кого-то есть подсказка?