class RedisDB(object): def __init__(self): if not hasattr(RedisDB, 'pool'): RedisDB.createPool() self.r = StrictRedis(connection_pool = RedisDB.pool) @staticmethod def createPool(): RedisDB.pool = redis.ConnectionPool( host = '127.0.0.1', port = 6379, db = 0 ) def saveToRedis(self, receiver, to_station_ab, to_station_name, from_station_ab, from_station_name, querydate, purpose_code, noticetime, publishtime): '''将需要抓取的信息存入redis''' uid = self.r.incr('uid') tickets_info = {'uid':uid, 'receiver':receiver, 'to_station_ab':to_station_ab, 'to_station_name':to_station_name, 'from_station_ab':from_station_ab,'from_station_name':from_station_name, 'querydate':querydate, 'purpose_code':purpose_code, 'noticetime':noticetime, 'publishtime': publishtime} self.r.zadd('email_que_set_all', uid, str(tickets_info)) if noticetime == '9am': self.r.zadd('email_que_set_9am', uid, str(tickets_info)) elif noticetime == '11am': self.r.zadd('email_que_set_11am', uid, str(tickets_info)) elif noticetime == '3pm': self.r.zadd('email_que_set_3pm', uid, str(tickets_info)) elif noticetime == '5pm': self.r.zadd('email_que_set_5pm', uid, str(tickets_info)) self.r.save() def getStation(self, set, name): return self.r.hget(set, name) def zrevrange(self, set, begin, end): return self.r.zrevrange(set, begin, end) def zremrangebyscore(self, queue, uid): return self.r.zremrangebyscore(queue, uid, uid) def station_validate(self, form, field): ''' 表单tostation和tostation验证函数 ''' if not self.r.getStation(field.data): raise ValidationError(u'木有这个站') def saveJSONToSet(self, setName, json): if not self.r.exists(setName): for i, name in enumerate(json): self.r.hset(setName, name, json[name]) print 'insert'+name self.r.save() else: pass