|
@@ -22,6 +22,7 @@ from functools import partial
|
|
|
from billiard import current_process
|
|
|
|
|
|
from celery import VERSION_BANNER, platforms, signals
|
|
|
+from celery.app.abstract import from_config
|
|
|
from celery.exceptions import SystemTerminate
|
|
|
from celery.loaders.app import AppLoader
|
|
|
from celery.task import trace
|
|
@@ -80,9 +81,10 @@ EXTRA_INFO_FMT = """
|
|
|
|
|
|
|
|
|
class Worker(WorkController):
|
|
|
+ redirect_stdouts = from_config()
|
|
|
+ redirect_stdouts_level = from_config()
|
|
|
|
|
|
- def on_before_init(self, purge=False, redirect_stdouts=None,
|
|
|
- redirect_stdouts_level=None, **kwargs):
|
|
|
+ def on_before_init(self, purge=False, no_color=None, **kwargs):
|
|
|
# apply task execution optimizations
|
|
|
trace.setup_worker_optimizations(self.app)
|
|
|
|
|
@@ -92,14 +94,11 @@ class Worker(WorkController):
|
|
|
signals.celeryd_init.send(sender=self.hostname, instance=self,
|
|
|
conf=conf)
|
|
|
self.purge = purge
|
|
|
+ self.no_color = no_color
|
|
|
self._isatty = isatty(sys.stdout)
|
|
|
- self.colored = self.app.log.colored(self.logfile)
|
|
|
- if redirect_stdouts is None:
|
|
|
- redirect_stdouts = conf.CELERY_REDIRECT_STDOUTS,
|
|
|
- if redirect_stdouts_level is None:
|
|
|
- redirect_stdouts_level = conf.CELERY_REDIRECT_STDOUTS_LEVEL
|
|
|
- self.redirect_stdouts = redirect_stdouts
|
|
|
- self.redirect_stdouts_level = redirect_stdouts_level
|
|
|
+ self.colored = self.app.log.colored(self.logfile,
|
|
|
+ enabled=not no_color if no_color is not None else no_color
|
|
|
+ )
|
|
|
|
|
|
def on_start(self):
|
|
|
WorkController.on_start(self)
|
|
@@ -124,16 +123,19 @@ class Worker(WorkController):
|
|
|
print(str(self.colored.cyan(' \n', self.startup_info())) +
|
|
|
str(self.colored.reset(self.extra_info() or '')))
|
|
|
self.set_process_status('-active-')
|
|
|
- self.redirect_stdouts_to_logger()
|
|
|
+ self.setup_logging()
|
|
|
self.install_platform_tweaks(self)
|
|
|
|
|
|
def on_consumer_ready(self, consumer):
|
|
|
signals.worker_ready.send(sender=consumer)
|
|
|
print('celery@{0.hostname} ready.'.format(self))
|
|
|
|
|
|
- def redirect_stdouts_to_logger(self):
|
|
|
+ def setup_logging(self, colorize=None):
|
|
|
+ if colorize is None and self.no_color is not None:
|
|
|
+ colorize = not self.no_color
|
|
|
self.app.log.setup(self.loglevel, self.logfile,
|
|
|
- self.redirect_stdouts, self.redirect_stdouts_level)
|
|
|
+ self.redirect_stdouts, self.redirect_stdouts_level,
|
|
|
+ colorize=colorize)
|
|
|
|
|
|
def purge_messages(self):
|
|
|
count = self.app.control.purge()
|