Beispiel #1
0
    def process_request(self, request):

        host = request.get_host()

        # Only look at requests to example.microco.sm
        if host.endswith(settings.API_DOMAIN_NAME):

            # Fetch site from cache
            try:
                site = self.mc.get(host)
            except memcache.Error as e:
                logger.error('Memcached GET error: %s' % str(e))
                site = None

            # Not in cache or retrieval failed
            if site is None:
                try:
                    site = Site.retrieve(host)
                    try:
                        self.mc.set(host, site, time=300)
                    except memcache.Error as e:
                        logger.error('Memcached SET error: %s' % str(e))
                except APIException, e:
                    # HTTP 400 indicates a non-existent site.
                    if e.status_code == 400:
                        return HttpResponseRedirect('http://microco.sm')
                    logger.error('APIException: %s' % e.message)
                    return HttpResponseRedirect(reverse('server-error'))
                except RequestException, e:
                    logger.error('RequestException: %s' % e.message)
                    return HttpResponseRedirect(reverse('server-error'))
Beispiel #2
0
    def process_request(self, request):

        host = request.get_host()

        # Only look at requests to example.microco.sm
        if host.endswith(settings.API_DOMAIN_NAME):

            # Fetch site from cache
            try:
                site = self.mc.get(host)
            except memcache.Error as e:
                logger.error('Memcached GET error: %s' % str(e))
                site = None

            # Not in cache or retrieval failed
            if site is None:
                try:
                    site = Site.retrieve(host)
                    try:
                        self.mc.set(host, site, time=300)
                    except memcache.Error as e:
                        logger.error('Memcached SET error: %s' % str(e))
                except APIException, e:
                    # HTTP 400 indicates a non-existent site.
                    if e.status_code == 404:
                        return HttpResponseRedirect('http://microco.sm')
                    logger.error('APIException: %s' % e.message)
                    return HttpResponseRedirect(reverse('server-error'))
                except RequestException, e:
                    logger.error('RequestException: %s' % e.message)
                    return HttpResponseRedirect(reverse('server-error'))