예제 #1
0
파일: taskq.py 프로젝트: qa1/Pontiac
 def get(self):
     try:
         item = RedisQueue.conn.brpop(self.key)[1]
     except redis.RedisError as e:
         raise errors.DependencyError(
             'failed to pop from redis server: {}'.format(e))
     return self.deserialize(item)
예제 #2
0
파일: taskq.py 프로젝트: qa1/Pontiac
 def size(self):
     try:
         sz = int(RedisQueue.conn.llen(self.key))
     except redis.RedisError as e:
         raise errors.DependencyError(
             'failed to get length from redis server: {}'.format(e))
     return sz
예제 #3
0
파일: taskq.py 프로젝트: qa1/Pontiac
 def put(self, task):
     try:
         RedisQueue.conn.lpush(self.key, self.serialize(task))
         if self.max_size:
             RedisQueue.conn.ltrim(self.key, 0, self.max_size - 1)
     except redis.RedisError as e:
         raise errors.DependencyError(
             'failed to push to redis server: {}'.format(e))
예제 #4
0
파일: taskq.py 프로젝트: qa1/Pontiac
    def __init__(self, *args, **kwargs):
        TaskQueue.__init__(self, *args, **kwargs)
        params = {
            'host': settings.REDIS['host'],
            'port': settings.REDIS.get('port', 6379),
            'db': settings.REDIS.get('db', 0),
        }
        if settings.REDIS.get('password'):
            params.update({'password': settings.REDIS['password']})

        if RedisQueue.conn is None:
            try:
                RedisQueue.conn = redis.Redis(
                    **params)  # redis.StrictRedis(**params)
            except redis.RedisError as e:
                raise errors.DependencyError(
                    'failed to connect to redis server: {}'.format(e))

        self.max_size = int(settings.REDIS.get('max_size', 0))
예제 #5
0
파일: taskq.py 프로젝트: qa1/Pontiac
 def close(self):
     try:
         RedisQueue.conn.ltrim(self.key, 0, 0)
     except redis.RedisError as e:
         raise errors.DependencyError(
             'failed to delete list from redis server: {}'.format(e))