def _setup_response(self, msg): func = self._get_func_by_name(msg) channel = self job = get_or_create_job(channel, msg, func) if job is None: raise JobNotInSessionError('job not in sessions: ' + repr(Job.sessions)) progress = msg.get('progress', {}) if progress in (None, False): return if type(progress) != type({}): raise InvalidProgressError( 'the progress in message is not a dictionary') interval = progress.get('interval', 5) progress_key = progress.get('key') if progress_key is None: lam = lambda r: r else: lam = lambda r: r.get(progress_key) threadutil.start_thread(target=progress_sender, args=(job, channel, interval, lam), daemon=True)
def _setup_response(self, msg): func = self._get_func_by_name(msg) channel = self job = get_or_create_job(channel, msg, func) if job is None: raise JobNotInSessionError( 'job not in sessions: ' + repr(Job.sessions)) progress = msg.get('progress', {}) if progress in (None, False): return if type(progress) != type({}): raise InvalidProgressError( 'the progress in message is not a dictionary') interval = progress.get('interval', 5) progress_key = progress.get('key') if progress_key is None: lam = lambda r: r else: lam = lambda r: r[progress_key] threadutil.start_thread(target=progress_sender, args=(job, channel, interval, lam), daemon=True)
def __init__(self, channel, msg, func): self.ident = msg['ident'] self.channel = channel self.data = msg self.worker = func self.ctx = {} self.err = None if self.ident in self.sessions: logger.info('job: %s already exists, created by chennel %s' % (self.ident, repr(self.sessions[self.ident].channel))) return else: self.sessions[self.ident] = self logger.info(('inserted job: %s to sessions by channel %s, ' + 'there are %d jobs in sessions now') % (self.ident, repr(self.channel), len(self.sessions))) self.thread = threadutil.start_thread(target=self.work, args=(), daemon=True)
def __init__(self, channel, msg, func): self.ident = msg['ident'] self.channel = channel self.data = msg self.worker = func self.ctx = {} self.err = None self.progress_available = threading.Event() if self.ident in self.sessions: logger.info('job: %s already exists, created by chennel %s' % (self.ident, repr(self.sessions[self.ident].channel))) return else: self.sessions[self.ident] = self logger.info(('inserted job: %s to sessions by channel %s, ' + 'there are %d jobs in sessions now') % (self.ident, repr(self.channel), len(self.sessions))) self.thread = threadutil.start_thread(target=self.work, args=(), daemon=True)
def sync(): try: report_sess = {'stop': False} report_th = threadutil.start_thread(report, args=(report_sess, ), daemon=True) jobq.run(iter_files(src_client, cnf['SRC_BUCKET']), [ (sync_one_file, 3), (update_sync_stat, 1), ]) report_sess['stop'] = True report_th.join() except KeyboardInterrupt: logger.exception('get KeyboardInterrupt') sys.exit(0) finally: report_state() dump_state()