平臺使用的Greenplum(內核是postgresql8.2)集羣存儲大數據量數據(天天一個表大概3億),由於數據量比較大,因此在使用上有些限制,一是操做限制;二是不限制,可是到必定時間執行不出來結果就要取消掉該查詢,不能一直佔用資源。前端
超時時間設置爲240秒,前端nginx設置時間要與後端java設置時間上保持一致。java
server { listen 8080; server_name localhost; location / { root C:/ngtest1; proxy_send_timeout 240; proxy_read_timeout 240; } }
@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「。nginx