web项目超时方案

1. 场景描述

平台使用的Greenplum(内核是postgresql8.2)集群存储大数据量数据(每天一个表大概3亿),因为数据量比较大,所以在使用上有些限制,一是操作限制;二是不限制,但是到一定时间执行不出来结果就要取消掉该查询,不能一直占用资源。

2. 解决方案

2.1 前端nginx设置

超时时间设置为240秒,前端nginx设置时间要与后端java设置时间上保持一致。

   server {
       listen      8080;
       server_name  localhost;
       location / {
       
           root    C:/ngtest1;
           proxy_send_timeout 240;
           proxy_read_timeout 240;
        }
    }
2.2 后端java设置
    @Bean
    public JdbcTemplate jdbcTemplate() {
        JdbcTemplate jdbcTemplate = new JdbcTemplate(dataSourceGreenPlum());
        jdbcTemplate.setQueryTimeout(240);// 查询超时4分钟
        return jdbcTemplate;
    }

采用jdbc的setQueryTimeout,超时会取消数据库执行(kill掉查询),数据库会报提示”java.sql.SQLException : Query execution was interrupted“。


转载于:https://www.cnblogs.com/ruanjianlaowang/p/11182726.html

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值