Example #1
0
    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)
Example #2
0
 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)
Example #3
0
    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)
Example #4
0
 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)
Example #5
0
    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)
Example #6
0
 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 )
Example #7
0
    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)
Example #8
0
 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)
Example #9
0
 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)
Example #10
0
 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)
Example #11
0
    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)
Example #12
0
    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)