summaryrefslogtreecommitdiff
path: root/tools/worker.py
diff options
context:
space:
mode:
Diffstat (limited to 'tools/worker.py')
-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()