def invalidate(self, *raw_args, **raw_kwargs):
        args = self.prepare_args(*raw_args)
        kwargs = self.prepare_kwargs(**raw_kwargs)
        key = self.key(*args, **kwargs)
        item = self.cache.get(key)
        if item is not None:
            expiry, data = item
            self.cache_set(key, self.timeout(*args, **kwargs), data)
            self.async_refresh(*args, **kwargs)
Given the request we can depend on the GroupMiddleware to provide the
dataset/ETHPy150Open codeinthehole/django-cacheback/cacheback/base.py/Job.invalidate--crossover with--dataset/ETHPy150Open amarandon/smeuhsocial/apps/photos/views.py/group_and_bridge