2016-04-14 2 views
0

Как бы вы полностью прекратили работу сельдерейца при печати любых сообщений на стандартный вывод? Я попыталсяОтключить работу с сельдерейным текстом

celery worker --app proj --logfile=/dev/null 

Это остановит все сообщения КРОМЕ следующее сообщение, получает распечатанный на старте:

-------------- <version> 
---- **** ----- 
--- * *** * -- <OS> 
-- * - **** --- 
- ** ---------- [config] 
- ** ---------- .> app:   <app> 
- ** ---------- .> transport: <QUEUE> 
- ** ---------- .> results:  <DB> 
- *** --- * --- .> concurrency: 10 <con> 
-- ******* ---- 
--- ***** ----- [queues] 
-------------- .> celery   <exchange> 

Есть ли способ, чтобы остановить это сообщение от печати на старте? Я использую сценарий выскочки.

+0

Привет, вы можете объяснить, почему? –

+0

Отправляет сообщение «upstart/worker.log». Мы хотим, чтобы этот журнал был чистым для целей мониторинга. Он должен содержать только ошибки, возникающие при запуске службы –

ответ

1

Я удалил celery worker в пользу celery multi давным-давно. Одно из преимуществ multi по сравнению с worker заключается в том, что он не производит выход, с которого вы пытаетесь избавиться. Типичный результат будет:

celery multi v3.1.23 (Cipater) 
> Starting nodes... 
     > [email protected]: OK 

Вы можете даже избавиться от этого бита выхода, если вы хотите с помощью опции --quiet.

Я пробовал спокойно с celery worker только сейчас, но все же получил нежелательный результат.

0

Привет, причина, по которой перенаправление на dev/null файла журнала не будет работать для сообщения о запуске, объясняется this line в источнике celery worker.py. Как вы можете видеть, сообщение о запуске - это print to stdout.

Один из способов преодоления - создать собственную версию worker.py, но я вижу, что это очень больно, просто удалите несколько строк из файла журнала.

Я не могу придумать другой способ решения вашей проблемы.