def cleanDeletedItemsByPrefix(prefix): items = rs.keys(prefix+"*") for item in items: title = item.partition(prefix)[2] if item_deleted(title.decode('utf-8')): logger.info('check deleted: %s, %s' % (prefix, title)) rs.delete(item)
def cleanDeletedItemsByPrefix(prefix): items = rs.keys(prefix + "*") for item in items: title = item.partition(prefix)[2] if item_deleted(title.decode('utf-8')): logger.info('check deleted: %s, %s' % (prefix, title)) rs.delete(item)
def cleanExpiredItem(self): expiringItems = rs.zrange(ORDERED_SET, 0, -1) verifyingItems = filter(lambda x: x.startswith(VERIFYING_PREFIX), expiringItems) for verifyingKey in verifyingItems: print rs.zscore(ORDERED_SET, verifyingKey) - time.time(), '---' if rs.zscore(ORDERED_SET, verifyingKey) < time.time(): # if a verifying key in zset, if it is expired by score, # first check if this key exist in verifying pool, # if not, just delete from zset rs.zrem(ORDERED_SET, verifyingKey) data = rs.hgetall(verifyingKey) if not data: break title = verifyingKey.strip(VERIFYING_PREFIX) verifiedKey = VERIFIED_PREFIX + title rs.zadd(ORDERED_SET, VERIFIED_PREFIX+title, time.time()+VERIFIED_EXPIRE) rs.hmset(verifiedKey, data) rs.expire(verifiedKey, VERIFIED_EXPIRE) rs.delete(verifyingKey) notVerifyingItem = filter( lambda x: not x.startswith(VERIFYING_PREFIX), expiringItems) for item in notVerifyingItem: if rs.zscore(ORDERED_SET, item) < time.time(): rs.zrem(ORDERED_SET, item)
def updateSentRecord(self): key = SENT_PREFIX + self.ItemTobeSend['title'] rs.hmset(key, self.ItemTobeSend) rs.expire(key, SENT_EXPIRE) rs.delete(self.ItemTobeSendTitle) # remove original item from zset and re-add into zset as sent state rs.zrem(ORDERED_SET, self.ItemTobeSendTitle) rs.zadd(ORDERED_SET, SENT_PREFIX+self.ItemTobeSend['title'], SENT_EXPIRE+time.time())
def postsend(self): key = SENT + self.ItemTobeSend rs.set(key, self.ItemTobeSend, SENT_EXPIRE) rs.delete(self.ItemTobeSendKey)
def teardown(): rs.delete(mpconfig.MoePadConfKey)