From 924f639661819914c801335011843332fc4d9f79 Mon Sep 17 00:00:00 2001 From: taojinlong Date: Wed, 14 Apr 2021 18:31:13 +0800 Subject: [PATCH] =?UTF-8?q?feat:=20=E6=95=B0=E6=8D=AE=E6=BA=90=E8=BF=9E?= =?UTF-8?q?=E6=8E=A5=E6=B1=A0?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../datasource/service/DatasourceService.java | 18 ++++++----- .../AppStartInitDataSourceListener.java | 31 +++++++++++++++++++ 2 files changed, 41 insertions(+), 8 deletions(-) create mode 100644 backend/src/main/java/io/dataease/listener/AppStartInitDataSourceListener.java diff --git a/backend/src/main/java/io/dataease/datasource/service/DatasourceService.java b/backend/src/main/java/io/dataease/datasource/service/DatasourceService.java index 2780916961..7fb24d6fae 100644 --- a/backend/src/main/java/io/dataease/datasource/service/DatasourceService.java +++ b/backend/src/main/java/io/dataease/datasource/service/DatasourceService.java @@ -107,14 +107,16 @@ public class DatasourceService { public void initAllDataSourceConnectionPool(){ List datasources = datasourceMapper.selectByExampleWithBLOBs(new DatasourceExample()); datasources.forEach(datasource -> { - try { - DatasourceProvider datasourceProvider = ProviderFactory.getProvider(datasource.getType()); - DatasourceRequest datasourceRequest = new DatasourceRequest(); - datasourceRequest.setDatasource(datasource); - datasourceProvider.initConnectionPool(datasourceRequest); - }catch (Exception e){ - e.printStackTrace(); - } + commonThreadPool.addTask(() ->{ + try { + DatasourceProvider datasourceProvider = ProviderFactory.getProvider(datasource.getType()); + DatasourceRequest datasourceRequest = new DatasourceRequest(); + datasourceRequest.setDatasource(datasource); + datasourceProvider.initConnectionPool(datasourceRequest); + }catch (Exception e){ + e.printStackTrace(); + } + }); }); } } diff --git a/backend/src/main/java/io/dataease/listener/AppStartInitDataSourceListener.java b/backend/src/main/java/io/dataease/listener/AppStartInitDataSourceListener.java new file mode 100644 index 0000000000..632cb2e767 --- /dev/null +++ b/backend/src/main/java/io/dataease/listener/AppStartInitDataSourceListener.java @@ -0,0 +1,31 @@ +package io.dataease.listener; + +import io.dataease.base.domain.DatasetTable; +import io.dataease.base.domain.DatasetTableExample; +import io.dataease.base.domain.DatasetTableField; +import io.dataease.base.mapper.DatasetTableMapper; +import io.dataease.commons.utils.CommonThreadPool; +import io.dataease.datasource.service.DatasourceService; +import io.dataease.service.dataset.DataSetTableFieldsService; +import io.dataease.service.spark.SparkCalc; +import org.springframework.boot.context.event.ApplicationReadyEvent; +import org.springframework.context.ApplicationListener; +import org.springframework.core.annotation.Order; +import org.springframework.core.env.Environment; +import org.springframework.stereotype.Component; + +import javax.annotation.Resource; +import java.util.List; + +@Component +@Order(value = 2) +public class AppStartInitDataSourceListener implements ApplicationListener { + @Resource + private DatasourceService datasourceService; + @Override + public void onApplicationEvent(ApplicationReadyEvent applicationReadyEvent) { + System.out.println("================= Init datasource connection pool ================="); + // 项目启动,从数据集中找到定时抽取的表,从HBase中读取放入缓存 + datasourceService.initAllDataSourceConnectionPool(); + } +}