2017-01-13 8 views
0

Я поместил Celery в мое приложение Django, чтобы две другие программы python могли обрабатывать входные данные из моего приложения Django с помощью метода подпроцесса. Мой вопрос: как получить доступ к выходному сигналу из подпроцесса? Тогда, когда я сделал только программу python, я обращаюсь к файлам журналов (вывод из двух приложений) через stdout и stderr. Это то же самое, когда я использую сельдерей в Django? Является ли значение CELERY_RESULT_BACKEND (если мне нужно назначить db моего Django здесь), на который повлияли файлы журнала?Доступ к подпроцессу Celery sddout и stderr в моем приложении Django

До сих пор, что я сделал это:

  1. Доступ двух приложений с помощью подпроцесса в моем tasks.py

  2. Я назначил дб моего брокера, Redis, как мой дб сейчас для CELERY_RESULT_BACKEND. Мой план состоит в том, чтобы получить файлы журнала, а затем сохранить их в db моего приложения Django, чтобы я мог просто получить доступ к этому db.

Можете предложить вам помощь?

ответ

0

Как правило, вы заботитесь о результатах задачи, которая является возвращаемым значением задачи сельдерея, и которая хранится в вашем result_backend не менее чем за result_expires времени (обычно 1 день). Таким образом, в той степени, в которой вы хотите получить доступ к результату какой-либо конкретной задачи, вы можете просто сделать это с помощью идентификатора задачи.

+0

Ну, возвращаемые значения есть. Если вы ищете отладочные операторы, и когда задача была получена, и тому подобное, вы не можете получить эту информацию. Но вы можете получить доступ к метаданным результатов/задач и возвращаемому значению задачи. – 2ps

+0

А, ок, я понял. Если это не сработает, возможно, я могу контролировать значение stdout и stderr. : D Спасибо! – sparklights

+0

** Я удалил свой первый комментарий, извините, раньше не видел вашего ответа. Спасибо за ваш ответ! – sparklights