def pop(cls, queues, timeout=0): if isinstance(queues, basestring): queues = [queues] ret = cls.client.blpop(["resque:queue:%s" % q for q in queues], timeout=timeout) if ret: key, ret = ret return key[13:], TaskMessage.decode(ret) # trim "resque:queue:" else: return None, None
def next_item_for_timestamp(cls, timestamp): #key = int(time.mktime(timestamp.timetuple())) key = "resque:delayed:%s" % timestamp ret = cls.client.lpop(key) item = None if ret: item = TaskMessage.decode(ret) if cls.client.llen(key) == 0: cls.client.delete(key) cls.client.zrem('resque:delayed_queue_schedule', timestamp) return item
def list_range(cls, key, start, count): items = cls.client.lrange(key, start, start + count - 1) or [] ret_list = [] for i in items: ret_list.append(TaskMessage.decode(i)) return ret_list