def process(command): client = RedisClient(host='localhost', port=6391) client.select(2) proposal_id_lock = "proposal_id_lock" proposal_id_key = "uuid" proposal_id = 0 #get proposal id try: with RedisLock(client, proposal_id_lock, timeout=lock_timeout) as lock: proposal_id = client.get(proposal_id_key) client.set(proposal_id_key, int(proposal_id) + 1) except LockNotAcquired: return reply(False, command) proposeal_key = "proposal" + str(proposal_id) client.hset(proposeal_key, 'title', command['title']) client.hset(proposeal_key, 'content', command['content']) #提议: 复议/未复议 #复议: 赞同/反对 #会议: 进行中/已完成/为开始 #决议: 执行 client.hset(proposeal_key, 'state', 0) client.hset(proposeal_key, 'type', 0) client.hset(proposeal_key, 'time', time.time()) client.lpush("list", proposal_id) #set proposal title #proposal_id: title: *** # content: *** # state: *** # time: #SORT list get proposal_*->time #sort list by proposal*->time get proposal*->content return reply(True, command, proposal_id)
def process(command): proposal_id = command['proposal_id'] print "proposal_id %r" %proposal_id client = RedisClient(host='localhost', port=6391) client.select(2) proposal_key = "proposal" + str(proposal_id) print proposal_key value = client.hgetall(proposal_key) print value client.select(4) key = "reconsider" + str(proposal_id) client.hset(key, 'title', value['title']) client.hset(key, 'state', value['state']) client.hset(key, 'content', value['content']) client.hset(key, 'type', 1) client.hset(key, 'time', value['time']) client.hset(key, 'agree_count', 0) client.hset(key, 'disagree', 0) reconsiderTitle = ReconsiderTitle(value['title'], value['state'], proposal_id, value['content'], 0, 0) client.lpush("list", proposal_id) #create reconsider #delete proposal client.select(2) client.delete(proposal_key) client.lrem("list", proposal_id, 1) return reply(True, command, reconsiderTitle)