From 7be878aed7f385270f59281fbe28b95ea993afdd Mon Sep 17 00:00:00 2001 From: Vincent Driessen Date: Mon, 28 Nov 2011 21:02:42 +0100 Subject: [PATCH] Allow specification of DB. (And fix the worker actually being able to connect to a different database.) --- bin/rqinfo | 3 ++- bin/rqworker | 18 ++++++++++++++---- 2 files changed, 16 insertions(+), 5 deletions(-) diff --git a/bin/rqinfo b/bin/rqinfo index 5cf31e97..368be506 100755 --- a/bin/rqinfo +++ b/bin/rqinfo @@ -117,6 +117,7 @@ def parse_args(): parser = argparse.ArgumentParser(description='RQ command-line monitor.') parser.add_argument('--host', '-H', default='localhost', help='The Redis hostname (default: localhost)') parser.add_argument('--port', '-p', type=int, default=6379, help='The Redis portnumber (default: 6379)') + parser.add_argument('--db', '-d', type=int, default=0, help='The Redis database (default: 0)') parent_parser = argparse.ArgumentParser(add_help=False) parent_parser.add_argument('--interval', '-i', metavar='N', type=float, default=0, help='Updates stats every N seconds (default: don\'t poll)') @@ -139,7 +140,7 @@ def main(): args = parse_args() # Setup connection to Redis - redis_conn = redis.Redis(host=args.host, port=args.port) + redis_conn = redis.Redis(host=args.host, port=args.port, db=args.db) use_redis(redis_conn) try: args.func(args) diff --git a/bin/rqworker b/bin/rqworker index ebdfed3e..b4d20242 100755 --- a/bin/rqworker +++ b/bin/rqworker @@ -1,8 +1,10 @@ #!/usr/bin/env python import argparse import logbook +import redis from logbook import handlers from rq import use_redis, Queue, Worker +from redis.exceptions import ConnectionError def format_colors(record, handler): @@ -15,6 +17,7 @@ def format_colors(record, handler): colorize = lambda x: x return '%s: %s' % (record.time.strftime('%H:%M:%S'), colorize(record.msg)) + def setup_loghandlers(args): if args.verbose: loglevel = logbook.DEBUG @@ -39,6 +42,7 @@ def parse_args(): parser = argparse.ArgumentParser(description='Starts an RQ worker.') parser.add_argument('--host', '-H', default='localhost', help='The Redis hostname (default: localhost)') parser.add_argument('--port', '-p', type=int, default=6379, help='The Redis portnumber (default: 6379)') + parser.add_argument('--db', '-d', type=int, default=0, help='The Redis database (default: 0)') parser.add_argument('--burst', '-b', action='store_true', default=False, help='Run in burst mode (quit after all work is done)') parser.add_argument('--name', '-n', default=None, help='Specify a different name') @@ -51,12 +55,18 @@ def parse_args(): def main(): args = parse_args() - use_redis() setup_loghandlers(args) - queues = map(Queue, args.queues) - w = Worker(queues, name=args.name) - w.work(burst=args.burst) + # Setup connection to Redis + redis_conn = redis.Redis(host=args.host, port=args.port, db=args.db) + use_redis(redis_conn) + try: + queues = map(Queue, args.queues) + w = Worker(queues, name=args.name) + w.work(burst=args.burst) + except ConnectionError as e: + print(e) + if __name__ == '__main__': main()