Commit 20998ac2 authored by yajun.zhang's avatar yajun.zhang

保持数据库连接活跃

parent be706b9e
package cn.quantgroup.customer.config.data; package cn.quantgroup.customer.config.data;
import cn.hutool.log.Log;
import javax.annotation.Resource;
import javax.persistence.EntityManager; import javax.persistence.EntityManager;
import javax.persistence.Query; import javax.persistence.Query;
import javax.sql.DataSource;
import lombok.extern.slf4j.Slf4j; import lombok.extern.slf4j.Slf4j;
import org.springframework.beans.factory.annotation.Autowired; import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.beans.factory.annotation.Qualifier; import org.springframework.beans.factory.annotation.Qualifier;
import org.springframework.jdbc.core.JdbcTemplate;
import org.springframework.scheduling.annotation.Scheduled; import org.springframework.scheduling.annotation.Scheduled;
import org.springframework.stereotype.Component; import org.springframework.stereotype.Component;
...@@ -16,29 +12,22 @@ import org.springframework.stereotype.Component; ...@@ -16,29 +12,22 @@ import org.springframework.stereotype.Component;
@Component @Component
public class DatabaseConnectionKeeper { public class DatabaseConnectionKeeper {
// private final JdbcTemplate jdbcTemplate;
private EntityManager entityManager; private EntityManager entityManager;
// @Autowired
// public DatabaseConnectionKeeper(@Qualifier("secondaryDataSource") DataSource secondaryDataSource) {
// this.jdbcTemplate = new JdbcTemplate(secondaryDataSource);
// }
@Autowired @Autowired
public DatabaseConnectionKeeper(@Qualifier("entityManagerSecondary") EntityManager entityManager) { public DatabaseConnectionKeeper(@Qualifier("entityManagerSecondary") EntityManager entityManager) {
this.entityManager = entityManager; this.entityManager = entityManager;
} }
// 每小时执行一次查询操作,保持数据库连接活跃 // 每一分钟执行一次查询操作,保持数据库连接活跃
@Scheduled(fixedDelay = 60000) // 每小时执行一次 @Scheduled(fixedDelay = 60000)
public void keepDatabaseConnectionAlive() { public void keepDatabaseConnectionAlive() {
log.info("数据库定时任务执行");
try { try {
// 执行一个简单的查询操作 // 执行一个简单的查询操作
Query countQuery = entityManager.createNativeQuery("SELECT 1"); Query countQuery = entityManager.createNativeQuery("SELECT 1");
Object count = countQuery.getSingleResult(); Object count = countQuery.getSingleResult();
log.info("查询结果:{}",count);
// jdbcTemplate.execute("SELECT 1");
} catch (Exception ex) { } catch (Exception ex) {
// 处理异常 // 处理异常
log.error("数据库定时任务执行异常",ex); log.error("保持数据库连接活跃定时任务执行异常",ex);
} }
} }
} }
\ No newline at end of file
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment