summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorSelwin Ong <selwin.ong@gmail.com>2019-03-17 16:14:51 +0700
committerSelwin Ong <selwin.ong@gmail.com>2019-03-17 16:14:51 +0700
commit35b5991800c3953ceced37aefc9d0ff6f0b4c57b (patch)
tree058dc17712c5bf55d0e7377bf3d1a222cfb2076d
parent9f7762494b613ada210d164ea6c2d55b646aee74 (diff)
downloadrq-improve-rq-info.tar.gz
Show worker hostname and PID on cliimprove-rq-info
-rw-r--r--rq/cli/helpers.py7
-rw-r--r--rq/worker.py19
2 files changed, 16 insertions, 10 deletions
diff --git a/rq/cli/helpers.py b/rq/cli/helpers.py
index 8c7f20b..1e3af88 100644
--- a/rq/cli/helpers.py
+++ b/rq/cli/helpers.py
@@ -147,12 +147,15 @@ def show_workers(queues, raw, by_queue, queue_class, worker_class):
workers = worker_class.all()
if not by_queue:
+
for worker in workers:
queue_names = ', '.join(worker.queue_names())
+ name = '%s (%s %s)' % (worker.name, worker.hostname, worker.pid)
if not raw:
- click.echo('%s %s: %s' % (worker.name, state_symbol(worker.get_state()), queue_names))
+ click.echo('%s: %s %s' % (name, state_symbol(worker.get_state()), queue_names))
else:
- click.echo('worker %s %s %s' % (worker.name, worker.get_state(), queue_names))
+ click.echo('worker %s %s %s' % (name, worker.get_state(), queue_names))
+
else:
# Display workers by queue
queue_dict = {}
diff --git a/rq/worker.py b/rq/worker.py
index 4960d59..208d0e4 100644
--- a/rq/worker.py
+++ b/rq/worker.py
@@ -152,11 +152,8 @@ class Worker(object):
return None
name = worker_key[len(prefix):]
- worker = cls([],
- name,
- connection=connection,
- job_class=job_class,
- queue_class=queue_class)
+ worker = cls([], name, connection=connection, job_class=job_class,
+ queue_class=queue_class, prepare_for_work=False)
worker.refresh()
@@ -167,12 +164,18 @@ class Worker(object):
default_worker_ttl=DEFAULT_WORKER_TTL, job_class=None,
queue_class=None, log_job_description=True,
job_monitoring_interval=DEFAULT_JOB_MONITORING_INTERVAL,
- disable_default_exception_handler=False): # noqa
+ disable_default_exception_handler=False,
+ prepare_for_work=True): # noqa
if connection is None:
connection = get_current_connection()
self.connection = connection
- self.hostname = socket.gethostname()
- self.pid = os.getpid()
+
+ if prepare_for_work:
+ self.hostname = socket.gethostname()
+ self.pid = os.getpid()
+ else:
+ self.hostname = None
+ self.pid = None
self.job_class = backend_class(self, 'job_class', override=job_class)
self.queue_class = backend_class(self, 'queue_class', override=queue_class)