code: def worker(self, *args, **kwargs):
          
          def decorator(worker):
              @wraps(worker)
              def wrapper(*args):
                  for msg in self.consume(**kwargs):
                      worker(*args + (msg,))
              return wrapper
          if args:
              return decorator(*args)
          return decorator
docs: Decorator for using a function as a queue worker. Example:
          
          >>> @queue.worker(timeout=1)
          ... def printer(msg):
          ...     print msg
          >>> printer()
          my message
          another message
          
          You can also use it without passing any keyword arguments:
          
          >>> @queue.worker
          ... def printer(msg):
          ...     print msg
          >>> printer()
          my message
          another message
          
          :param kwargs: any arguments that :meth:`~hotqueue.HotQueue.get` can
              accept (:attr:`block` will default to ``True`` if not given)