Skip to content

Commit 2dc232f

Browse files
committed
Merge pull request binarymatt#74 from joeshaw/joeshaw-setproctitle
setproctitle() changes
2 parents d585f68 + 3070bd5 commit 2dc232f

File tree

3 files changed

+26
-12
lines changed

3 files changed

+26
-12
lines changed

pyres/horde.py

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -219,7 +219,7 @@ def register_signal_handlers(self):
219219
signal.signal(signal.SIGINT, self.schedule_shutdown)
220220
signal.signal(signal.SIGQUIT, self.schedule_shutdown)
221221
signal.signal(signal.SIGUSR1, self.kill_child)
222-
signal.signal(signal.SIGUSR1, self.add_child)
222+
signal.signal(signal.SIGUSR2, self.add_child)
223223

224224
def _schedule_shutdown(self):
225225
self.schedule_shutdown(None, None)

pyres/scheduler.py

Lines changed: 12 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -2,7 +2,7 @@
22
import time
33
import logging
44

5-
from pyres import ResQ
5+
from pyres import ResQ, __version__
66

77
logger = logging.getLogger(__name__)
88

@@ -32,6 +32,7 @@ def schedule_shutdown(self, signal, frame):
3232
self._shutdown = True
3333

3434
def __call__(self):
35+
_setproctitle("Starting")
3536
logger.info('starting up')
3637
self.register_signal_handlers()
3738
#self.load_schedule()
@@ -40,6 +41,7 @@ def __call__(self):
4041
if self._shutdown:
4142
break
4243
self.handle_delayed_items()
44+
_setproctitle("Waiting")
4345
logger.debug('sleeping')
4446
time.sleep(5)
4547
logger.info('shutting down complete')
@@ -63,6 +65,7 @@ def next_item(self, timestamp):
6365

6466
def handle_delayed_items(self):
6567
for timestamp in self.next_timestamp():
68+
_setproctitle('Handling timestamp %s' % timestamp)
6669
logger.info('handling timestamp: %s' % timestamp)
6770
for item in self.next_item(timestamp):
6871
logger.debug('queueing item %s' % item)
@@ -81,3 +84,11 @@ def run(cls, server, password=None):
8184
sched()
8285

8386

87+
try:
88+
from setproctitle import setproctitle
89+
except ImportError:
90+
def setproctitle(name):
91+
pass
92+
93+
def _setproctitle(msg):
94+
setproctitle("pyres_scheduler-%s: %s" % (__version__, msg))

pyres/worker.py

Lines changed: 13 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -111,6 +111,11 @@ def __str__(self):
111111
return self.id
112112
return '%s:%s:%s' % (self.hostname, self.pid, ','.join(self.queues))
113113

114+
def _setproctitle(self, msg):
115+
setproctitle("pyres_worker-%s [%s]: %s" % (__version__,
116+
','.join(self.queues),
117+
msg))
118+
114119
def work(self, interval=5):
115120
"""Invoked by ``run`` method. ``work`` listens on a list of queues and sleeps
116121
for ``interval`` time.
@@ -124,7 +129,7 @@ def work(self, interval=5):
124129
Finally, the ``process`` method actually processes the job by eventually calling the Job instance's ``perform`` method.
125130
126131
"""
127-
setproctitle('pyres_worker-%s: Starting' % __version__)
132+
self._setproctitle("Starting")
128133
self.startup()
129134

130135
while True:
@@ -140,10 +145,9 @@ def work(self, interval=5):
140145
self.before_fork(job)
141146
self.child = os.fork()
142147
if self.child:
143-
setproctitle("pyres_worker%s: Forked %s at %s" %
144-
(__version__,
145-
self.child,
146-
datetime.datetime.now()))
148+
self._setproctitle("Forked %s at %s" %
149+
(self.child,
150+
datetime.datetime.now()))
147151
logger.info('Forked %s at %s' % (self.child,
148152
datetime.datetime.now()))
149153

@@ -157,9 +161,9 @@ def work(self, interval=5):
157161
#os.wait()
158162
logger.debug('done waiting')
159163
else:
160-
setproctitle("pyres_worker-%s: Processing %s since %s" %
161-
(__version__, job._queue,
162-
datetime.datetime.now()))
164+
self._setproctitle("Processing %s since %s" %
165+
(job._queue,
166+
datetime.datetime.now()))
163167
logger.info('Processing %s since %s' %
164168
(job._queue, datetime.datetime.now()))
165169
self.after_fork(job)
@@ -170,8 +174,7 @@ def work(self, interval=5):
170174
if interval == 0:
171175
break
172176
#procline @paused ? "Paused" : "Waiting for #{@queues.join(',')}"
173-
setproctitle("pyres_worker-%s: Waiting for %s " %
174-
(__version__, ','.join(self.queues)))
177+
self._setproctitle("Waiting")
175178
#time.sleep(interval)
176179
self.unregister_worker()
177180

0 commit comments

Comments
 (0)