class AccountClient(object): def __init__(self, *args): self.client = MagicClient(*args) self.lock = threading.RLock() self.data = [] def load_accounts(self): while True: try: self.data = self.client.get_send_accounts() if not self.data: log.trace('load send_accounts not data') time.sleep(3) continue break except: log.exception("get_send_accounts fail") time.sleep(3) continue shuffle(self.data) #file('data/send_accounts%s.txt' % (datetime.now().strftime('%Y%M%d%H%m%S')), 'w').write('\n'.join(self.data)) if not self.data: raise Exception('Not Data Left') def get_rnd(self): with self.lock: if not self.data: self.load_accounts() return '%s----%s' % (self.data.pop(), '846266') get = get_rnd def set_fail(self, acc): try: self.client.add_account(acc, -1) except: pass