ソースを参照

celeryev: Set process title

Ask Solem 14 年 前
コミット
72d7fdecdf
3 ファイル変更18 行追加4 行削除
  1. 3 4
      celery/apps/worker.py
  2. 8 0
      celery/bin/celeryev.py
  3. 7 0
      celery/platforms.py

+ 3 - 4
celery/apps/worker.py

@@ -206,10 +206,9 @@ class Worker(object):
         os.environ.setdefault("celery_dummy_proxy", "set_by_celeryd")
 
     def set_process_status(self, info):
-        arg_start = "manage" in sys.argv[0] and 2 or 1
-        if sys.argv[arg_start:]:
-            info = "%s (%s)" % (info, " ".join(sys.argv[arg_start:]))
-        return platforms.set_mp_process_title("celeryd", info=info,
+        info = "%s (%s)" % (info, platforms.strargv(sys.argv))
+        return platforms.set_mp_process_title("celeryd",
+                                              info=info,
                                               hostname=self.hostname)
 
 

+ 8 - 0
celery/bin/celeryev.py

@@ -1,3 +1,4 @@
+from celery import platforms
 from celery.bin.base import Command, Option
 
 
@@ -14,17 +15,24 @@ class EvCommand(Command):
 
     def run_evdump(self):
         from celery.events.dumper import evdump
+        self.set_process_status("celeryev:dump")
         return evdump(app=self.app)
 
     def run_evtop(self):
         from celery.events.cursesmon import evtop
+        self.set_process_status("celeryev:top")
         return evtop(app=self.app)
 
     def run_evcam(self, *args, **kwargs):
         from celery.events.snapshot import evcam
+        self.set_process_status("celeryev:cam")
         kwargs["app"] = self.app
         return evcam(*args, **kwargs)
 
+    def set_process_status(self, prog, info=""):
+        info = "%s %s" % (info, platforms.strargv(sys.argv))
+        return platform.set_process_title(prog, info=info)
+
     def get_options(self):
         return (
             Option('-d', '--dump',

+ 7 - 0
celery/platforms.py

@@ -303,6 +303,13 @@ def install_signal_handler(signal_name, handler):
         pass
 
 
+def strargv(argv):
+    arg_start = "manage" in argv[0] and 2 or 1
+    if len(argv) > arg_start:
+        return " ".join(argv[arg_start:])
+    return ""
+
+
 def set_process_title(progname, info=None):
     """Set the ps name for the currently running process.