code: def fetch_cached(task_id, wait=0, broker=None):
      
      if not broker:
          broker = get_broker()
      start = time()
      while True:
          r = broker.cache.get('{}:{}'.format(broker.list_key, task_id))
          if r:
              task = SignedPackage.loads(r)
              t = Task(id=task['id'],
                       name=task['name'],
                       func=task['func'],
                       hook=task.get('hook'),
                       args=task['args'],
                       kwargs=task['kwargs'],
                       started=task['started'],
                       stopped=task['stopped'],
                       result=task['result'],
                       success=task['success'])
              return t
          if (time() - start) * 1000 >= wait >= 0:
              break
          sleep(0.01)
docs: Return the processed task from the cache backend