瀏覽代碼

Hostname can now be unicode. Maybe fixes #1186

Ask Solem 12 年之前
父節點
當前提交
b044de49fa
共有 3 個文件被更改,包括 8 次插入6 次删除
  1. 2 1
      celery/apps/worker.py
  2. 2 1
      celery/platforms.py
  3. 4 4
      celery/worker/consumer.py

+ 2 - 1
celery/apps/worker.py

@@ -21,6 +21,7 @@ import warnings
 from functools import partial
 
 from billiard import cpu_count, current_process
+from kombu.utils.encoding import safe_str
 
 from celery import VERSION_BANNER, platforms, signals
 from celery.app import app_or_default
@@ -187,7 +188,7 @@ class Worker(configurated):
 
     def on_consumer_ready(self, consumer):
         signals.worker_ready.send(sender=consumer)
-        print('celery@%s ready.' % self.hostname)
+        print('celery@%s ready.' % safe_str(self.hostname))
 
     def init_queues(self):
         try:

+ 2 - 1
celery/platforms.py

@@ -19,6 +19,7 @@ import signal as _signal
 import sys
 
 from billiard import current_process
+from kombu.utils.encoding import safe_str
 from contextlib import contextmanager
 
 from .local import try_import
@@ -611,7 +612,7 @@ def set_process_title(progname, info=None):
     proctitle = '[%s]' % progname
     proctitle = '%s %s' % (proctitle, info) if info else proctitle
     if _setproctitle:
-        _setproctitle.setproctitle(proctitle)
+        _setproctitle.setproctitle(safe_str(proctitle))
     return proctitle
 
 

+ 4 - 4
celery/worker/consumer.py

@@ -81,7 +81,7 @@ from time import sleep
 from Queue import Empty
 
 from kombu.syn import _detect_environment
-from kombu.utils.encoding import safe_repr
+from kombu.utils.encoding import safe_repr, safe_str
 from kombu.utils.eventio import READ, WRITE, ERR
 
 from celery.app import app_or_default
@@ -340,9 +340,9 @@ class Consumer(object):
                                      hostname=self.hostname,
                                      listener=self,     # pre 2.2
                                      consumer=self)
-        self.pidbox_node = self.app.control.mailbox.Node(self.hostname,
-                                                         state=pidbox_state,
-                                                         handlers=Panel.data)
+        self.pidbox_node = self.app.control.mailbox.Node(
+            safe_str(self.hostname), state=pidbox_state, handlers=Panel.data,
+        )
         conninfo = self.app.connection()
         self.connection_errors = conninfo.connection_errors
         self.channel_errors = conninfo.channel_errors