summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorDonald Stufft <donald@stufft.io>2013-07-24 23:36:00 -0400
committerDonald Stufft <donald@stufft.io>2013-07-24 23:36:00 -0400
commit9ca1d96be0203f390bd6cd92bcb465537f17f2bc (patch)
treed4dd5b269e7579dd4dec10be2e23f226a62eaed0
parentcc87ac69545b7e1b1db6add364667d36d636fef5 (diff)
downloaddecorator-9ca1d96be0203f390bd6cd92bcb465537f17f2bc.tar.gz
Add a script to enable configuring the worker
-rw-r--r--tools/worker.py29
1 files changed, 29 insertions, 0 deletions
diff --git a/tools/worker.py b/tools/worker.py
new file mode 100644
index 0000000..133558e
--- /dev/null
+++ b/tools/worker.py
@@ -0,0 +1,29 @@
+#!/usr/bin/env python
+import os
+import os.path
+import sys
+
+import redis
+import rq
+
+# Workaround current bug in docutils:
+# http://permalink.gmane.org/gmane.text.docutils.devel/6324
+import docutils.utils
+
+# Make sure our PyPI directory is on the sys.path
+root = os.path.dirname(os.path.dirname(os.path.abspath(__file__)))
+sys.path = [root] + sys.path
+
+import config
+
+
+conf = config.Config(os.environ.get("PYPI_CONFIG", "/data/pypi/config.ini"))
+redis_conn = redis.Redis.from_url(conf.redis_url)
+
+if sys.argv[1:]:
+ queues = [rq.Queue(name, connection=redis_conn) for name in sys.argv[1:]]
+else:
+ queues = [rq.Queue(connection=redis_conn)]
+
+worker = rq.Worker(queues, connection=redis_conn)
+worker.work()