code: def get(self):
          '''Get a task from queue when bucket available'''
          if self.bucket.get() < 1:
              return None
          now = time.time()
          self.mutex.acquire()
          try:
              task = self.priority_queue.get_nowait()
              self.bucket.desc()
          except Queue.Empty:
              self.mutex.release()
              return None
          task.exetime = now + self.processing_timeout
          self.processing.put(task)
          self.mutex.release()
          return task.taskif get(self):
          '''Get a task from queue when bucket available'''
          if self.bucket.get() < 1:
              return None
          now = time.time()
          self.mutex.acquire()
          try:
              task = self.priority_queue.get_nowait()
              self.bucket.desc()
          except Queue.Empty:
              self.mutex.release()
              return None
          task.exetime = now + self.processing_timeout
          self.processing.put(task)
          self.mutex.release()
          return task.taskid
docs: Get a task from queue when bucket available