Source

pypi / tools / worker.py

Full commit
Donald Stufft 17c0013 




Donald Stufft 82dfba4 
Donald Stufft 17c0013 

Donald Stufft 82dfba4 
Donald Stufft 17c0013 










Donald Stufft cd753af 
ewdurbin 60a2e69 
Donald Stufft 17c0013 
Donald Stufft 82dfba4 
Donald Stufft 17c0013 




Donald Stufft 82dfba4 
Donald Stufft 17c0013 
Donald Stufft 82dfba4 






Donald Stufft 17c0013 
#!/usr/bin/env python
import os
import os.path
import sys

import raven
import redis
import rq
import rq.contrib.sentry

# 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", os.path.join(root, "config.ini")))
redis_conn = redis.Redis.from_url(conf.queue_redis_url)

# Create our queues
if sys.argv[1:]:
    queues = [rq.Queue(name, connection=redis_conn) for name in sys.argv[1:]]
else:
    queues = [rq.Queue(connection=redis_conn)]

# Create our Worker
worker = rq.Worker(queues, connection=redis_conn)

# Create our Sentry Client
if conf.sentry_dsn:
    raven_client = raven.Client(conf.sentry_dsn)
    rq.contrib.sentry.register_sentry(raven_client, worker)

# Run our worker, fetching jobs from the queue
worker.work()