This commit is contained in:
26
src/org/redkale/source/DataAsyncSource.java
Normal file
26
src/org/redkale/source/DataAsyncSource.java
Normal file
@@ -0,0 +1,26 @@
|
|||||||
|
/*
|
||||||
|
* To change this license header, choose License Headers in Project Properties.
|
||||||
|
* To change this template file, choose Tools | Templates
|
||||||
|
* and open the template in the editor.
|
||||||
|
*/
|
||||||
|
package org.redkale.source;
|
||||||
|
|
||||||
|
import java.util.function.Function;
|
||||||
|
import org.redkale.service.*;
|
||||||
|
import org.redkale.util.*;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* DataSource的异步抽象实现类
|
||||||
|
*
|
||||||
|
* <p>
|
||||||
|
* 详情见: https://redkale.org
|
||||||
|
*
|
||||||
|
* @author zhangjx
|
||||||
|
*/
|
||||||
|
@Local
|
||||||
|
@AutoLoad(false)
|
||||||
|
@SuppressWarnings("unchecked")
|
||||||
|
@ResourceType(DataSource.class)
|
||||||
|
public abstract class DataAsyncSource extends AbstractService implements DataSource, DataCacheListener, Function<Class, EntityInfo>, AutoCloseable, Resourcable {
|
||||||
|
|
||||||
|
}
|
||||||
@@ -35,7 +35,7 @@ public class DataJdbcSource extends AbstractService implements DataSource, DataC
|
|||||||
|
|
||||||
protected static final Flipper FLIPPER_ONE = new Flipper(1);
|
protected static final Flipper FLIPPER_ONE = new Flipper(1);
|
||||||
|
|
||||||
protected final Logger logger = Logger.getLogger(DataJdbcSource.class.getSimpleName());
|
protected final Logger logger = Logger.getLogger(this.getClass().getSimpleName());
|
||||||
|
|
||||||
protected String name;
|
protected String name;
|
||||||
|
|
||||||
@@ -105,8 +105,9 @@ public class DataJdbcSource extends AbstractService implements DataSource, DataC
|
|||||||
protected void preConstruct(String unitName, Properties readprop, Properties writeprop) {
|
protected void preConstruct(String unitName, Properties readprop, Properties writeprop) {
|
||||||
final AtomicInteger counter = new AtomicInteger();
|
final AtomicInteger counter = new AtomicInteger();
|
||||||
this.threads = Integer.decode(readprop.getProperty(JDBC_CONNECTIONSMAX, "" + Runtime.getRuntime().availableProcessors() * 16));
|
this.threads = Integer.decode(readprop.getProperty(JDBC_CONNECTIONSMAX, "" + Runtime.getRuntime().availableProcessors() * 16));
|
||||||
|
final String cname = this.getClass().getSimpleName();
|
||||||
final Thread.UncaughtExceptionHandler ueh = (t, e) -> {
|
final Thread.UncaughtExceptionHandler ueh = (t, e) -> {
|
||||||
logger.log(Level.SEVERE, "DataJdbcSource error", e);
|
logger.log(Level.SEVERE, cname + " error", e);
|
||||||
};
|
};
|
||||||
this.executor = Executors.newFixedThreadPool(threads, (Runnable r) -> {
|
this.executor = Executors.newFixedThreadPool(threads, (Runnable r) -> {
|
||||||
Thread t = new Thread(r);
|
Thread t = new Thread(r);
|
||||||
@@ -117,7 +118,7 @@ public class DataJdbcSource extends AbstractService implements DataSource, DataC
|
|||||||
} else if (s.length() == 2) {
|
} else if (s.length() == 2) {
|
||||||
s = "0" + s;
|
s = "0" + s;
|
||||||
}
|
}
|
||||||
t.setName("DataJdbcSource-Thread-" + s);
|
t.setName(cname + "-Thread-" + s);
|
||||||
t.setUncaughtExceptionHandler(ueh);
|
t.setUncaughtExceptionHandler(ueh);
|
||||||
return t;
|
return t;
|
||||||
});
|
});
|
||||||
@@ -126,9 +127,9 @@ public class DataJdbcSource extends AbstractService implements DataSource, DataC
|
|||||||
protected void initByProperties(String unitName, Properties readprop, Properties writeprop) {
|
protected void initByProperties(String unitName, Properties readprop, Properties writeprop) {
|
||||||
this.name = unitName;
|
this.name = unitName;
|
||||||
this.conf = null;
|
this.conf = null;
|
||||||
|
this.cacheForbidden = "NONE".equalsIgnoreCase(readprop.getProperty(JDBC_CACHE_MODE));
|
||||||
this.readPool = new PoolJdbcSource(this, "read", readprop);
|
this.readPool = new PoolJdbcSource(this, "read", readprop);
|
||||||
this.writePool = new PoolJdbcSource(this, "write", writeprop);
|
this.writePool = new PoolJdbcSource(this, "write", writeprop);
|
||||||
this.cacheForbidden = "NONE".equalsIgnoreCase(readprop.getProperty(JDBC_CACHE_MODE));
|
|
||||||
}
|
}
|
||||||
|
|
||||||
@Local
|
@Local
|
||||||
|
|||||||
Reference in New Issue
Block a user