Package net.csdn.modules.http.processor.impl

Source Code of net.csdn.modules.http.processor.impl.DefaultHttpStartProcessor

package net.csdn.modules.http.processor.impl;

import net.csdn.ServiceFramwork;
import net.csdn.common.logging.CSLogger;
import net.csdn.common.logging.Loggers;
import net.csdn.common.settings.Settings;
import net.csdn.hibernate.support.filter.CSDNStatFilterstat;
import net.csdn.modules.controller.API;
import net.csdn.modules.controller.QpsManager;
import net.csdn.modules.http.processor.HttpStartProcessor;
import net.csdn.modules.http.processor.ProcessInfo;

import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import java.util.concurrent.atomic.AtomicLong;

/**
* 3/29/14 WilliamZhu(allwefantasy@gmail.com)
*/
public class DefaultHttpStartProcessor implements HttpStartProcessor {
    boolean disableMysql = false;
    private CSLogger logger = Loggers.getLogger(DefaultHttpStartProcessor.class);

    @Override
    public void process(Settings settings, HttpServletRequest request, HttpServletResponse response, ProcessInfo processInfo) {
        disableMysql = settings.getAsBoolean(ServiceFramwork.mode + ".datasources.mysql.disable", false);
        startORM(disableMysql);
        ServiceFramwork.injector.getInstance(API.class).qpsIncrement(processInfo.method);

        boolean qpsLimitEnable = settings.getAsBoolean("qpslimit.enable", false);
        if (qpsLimitEnable) {
            QpsManager qpsManager = ServiceFramwork.injector.getInstance(QpsManager.class);
            if (qpsManager.check(request.getRequestURI())) {
                logger.error("qps 限流");
                throw new RuntimeException("qps-overflow");
            }
        }
    }

    private void startORM(boolean _disableMysql) {
        if (!_disableMysql) {
            CSDNStatFilterstat.setSQLTIME(new AtomicLong(0l));
        }
    }
}
TOP

Related Classes of net.csdn.modules.http.processor.impl.DefaultHttpStartProcessor

TOP
Copyright © 2018 www.massapi.com. All rights reserved.
All source code are property of their respective owners. Java is a trademark of Sun Microsystems, Inc and owned by ORACLE Inc. Contact coftware#gmail.com.