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;
jdbctemplate查询一条数据
}
采⽤jdbc的setQueryTimeout,超时会取消数据库执⾏(kill掉查询),数据库会报提⽰”java.sql.SQLException : Query execution was interrupted“。
版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。
发表评论