code: def get_cache(app):
      
      jobtastic_cache_setting = app.conf.get('JOBTASTIC_CACHE')
      if isinstance(jobtastic_cache_setting, BaseCache):
          return jobtastic_cache_setting
  
      if 'Django' in CACHES:
          if jobtastic_cache_setting:
              try:
                  return WrappedCache(get_django_cache(jobtastic_cache_setting))
              except InvalidCacheBackendError:
                  pass
          else:
              return WrappedCache(get_django_cache('default'))
  
      if 'Werkzeug' in CACHES:
          if jobtastic_cache_setting:
              backend, url = get_backend_by_url(jobtastic_cache_setting)
              backend = backend(app=app, url=url)
          else:
              backend = app.backend
  
          if isinstance(backend, CacheBackend):
              return WrappedCache(MemcachedCache(backend.client))
          elif isinstance(backend, RedisBackend):
              return WrappedCache(RedisCache(backend.client))
  
      # Give up
      raise RuntimeError('Cannot find a suitable cache for Jobtastic')
docs: Attempt to find a valid cache from the Celery configuration
  
      If the setting is a valid cache, just use it.
      Otherwise, if Django is installed, then:
          If the setting is a valid Django cache entry, then use that.
          If the setting is empty use the default cache
      Otherwise, if Werkzeug is installed, then:
          If the setting is a valid Celery Memcache or Redis Backend, then use
              that.
          If the setting is empty and the default Celery Result Backend is
              Memcache or Redis, then use that
      Otherwise fail