def put_all(self, task_list, block=True, timeout=None): ''' put a list of tasks on the queue ''' if not block: timeout = 0.0 def check(task_list): with filelock(self.filename, timeout=0.0) as lock: queue = load(self.filename, lock=lock, file_format='pickle') if not queue.max_size is None: n_extend = queue.max_size - queue.unfinished_tasks else: n_extend = len(task_list) this_tasks = [task_list.pop(0) for i in range(n_extend)] queue.unfinished_tasks += n_extend queue.task_list.extend(this_tasks) if len(this_tasks): save(queue, self.filename, lock=lock, file_format='pickle') if len(task_list): raise Full wait(check, timeout, self.delay, task_list)
def join(self): def check(): with filelock(self.filename,timeout=0.0) as lock: queue = load(self.filename,lock=lock,file_format='pickle') if queue.unfinished_tasks > 0: raise Full wait(check,timeout=None,delay=self.delay)
def join(self): def check(): with filelock(self.filename, timeout=0.0) as lock: queue = load(self.filename, lock=lock, file_format='pickle') if queue.unfinished_tasks > 0: raise Full wait(check, timeout=None, delay=self.delay)
def task_done( self, block=True, timeout=None ): if not block: timeout = 0.0 def check(): with filelock(self.filename,timeout=0.0) as lock: queue = load(self.filename,lock=lock,file_format='pickle') queue.unfinished_tasks -= 1 if queue.unfinished_tasks < 0: print 'warning: task_done() called too many times' queue.unfinished_tasks = 0 save(queue,self.filename,lock=lock,file_format='pickle') wait(check,timeout,self.delay)
def task_done(self, block=True, timeout=None): if not block: timeout = 0.0 def check(): with filelock(self.filename, timeout=0.0) as lock: queue = load(self.filename, lock=lock, file_format='pickle') queue.unfinished_tasks -= 1 if queue.unfinished_tasks < 0: print 'warning: task_done() called too many times' queue.unfinished_tasks = 0 save(queue, self.filename, lock=lock, file_format='pickle') wait(check, timeout, self.delay)
def put( self, task, block=True, timeout=None ): ''' put a task on the queue ''' if not block: timeout = 0.0 def check(): with filelock(self.filename,timeout=0.0) as lock: queue = load(self.filename,lock=lock,file_format='pickle') if not queue.max_size is None and queue.unfinished_tasks >= queue.max_size: raise Full queue.unfinished_tasks += 1 queue.task_list.append(task) save(queue,self.filename,lock=lock,file_format='pickle') wait(check,timeout,self.delay )
def put(self, task, block=True, timeout=None): ''' put a task on the queue ''' if not block: timeout = 0.0 def check(): with filelock(self.filename, timeout=0.0) as lock: queue = load(self.filename, lock=lock, file_format='pickle') if not queue.max_size is None and queue.unfinished_tasks >= queue.max_size: raise Full queue.unfinished_tasks += 1 queue.task_list.append(task) save(queue, self.filename, lock=lock, file_format='pickle') wait(check, timeout, self.delay)
def get( self, block=True, timeout=None ): ''' get a task from the queue ''' if not block: timeout = 0.0 def check(): with filelock(self.filename,timeout=0.0) as lock: queue = load(self.filename,lock=lock,file_format='pickle') try: task = queue.task_list.pop(0) save(queue,self.filename,lock=lock,file_format='pickle') except IndexError: raise Empty return task return wait(check,timeout,self.delay)
def get_all( self, block=True, timeout=None ): ''' get all tasks from the queue ''' if not block: timeout = 0.0 def check(): with filelock(self.filename,timeout=0.0) as lock: queue = load(self.filename,lock=lock,file_format='pickle') if len(queue.task_list): task_list = queue.task_list queue.task_list = [] save(queue,self.filename,lock=lock,file_format='pickle') else: raise Empty return task_list return wait(check,timeout,self.delay)
def put_all( self, task_list, block=True, timeout=None ): ''' put a list of tasks on the queue ''' if not block: timeout = 0.0 def check(task_list): with filelock(self.filename,timeout=0.0) as lock: queue = load(self.filename,lock=lock,file_format='pickle') if not queue.max_size is None: n_extend = queue.max_size-queue.unfinished_tasks else: n_extend = len(task_list) this_tasks = [ task_list.pop(0) for i in range(n_extend) ] queue.unfinished_tasks += n_extend queue.task_list.extend(this_tasks) if len(this_tasks): save(queue,self.filename,lock=lock,file_format='pickle') if len(task_list): raise Full wait(check,timeout,self.delay, task_list)
def get(self, block=True, timeout=None): ''' get a task from the queue ''' if not block: timeout = 0.0 def check(): with filelock(self.filename, timeout=0.0) as lock: queue = load(self.filename, lock=lock, file_format='pickle') try: task = queue.task_list.pop(0) save(queue, self.filename, lock=lock, file_format='pickle') except IndexError: raise Empty return task return wait(check, timeout, self.delay)
def get_all(self, block=True, timeout=None): ''' get all tasks from the queue ''' if not block: timeout = 0.0 def check(): with filelock(self.filename, timeout=0.0) as lock: queue = load(self.filename, lock=lock, file_format='pickle') if len(queue.task_list): task_list = queue.task_list queue.task_list = [] save(queue, self.filename, lock=lock, file_format='pickle') else: raise Empty return task_list return wait(check, timeout, self.delay)