code: async def take(self, timeout=None):
          
          args = None
          if timeout is not None:
              args = (timeout,)
  
          res = await self.conn.call(self.__funcs['take'], args)
          if len(res.body) > 0:
              return self._create_task(res.body)
          return None
docs: Takes task from the queue, waiting the timeout if specified
  
              :param timeout: Seconds to wait for ready tasks
              :return: Task instance