Exemple #1
0
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