优化Source
This commit is contained in:
@@ -112,6 +112,8 @@ public abstract class AbstractDataSource extends AbstractService implements Data
|
|||||||
//@since 2.7.0
|
//@since 2.7.0
|
||||||
public static final String DATA_SOURCE_TABLECOPY_SQLTEMPLATE = "tablecopy-sqltemplate";
|
public static final String DATA_SOURCE_TABLECOPY_SQLTEMPLATE = "tablecopy-sqltemplate";
|
||||||
|
|
||||||
|
protected final IntFunction<Serializable[]> serialArrayFunc = Utility.serialArrayFunc();
|
||||||
|
|
||||||
private final ReentrantLock executorLock = new ReentrantLock();
|
private final ReentrantLock executorLock = new ReentrantLock();
|
||||||
|
|
||||||
private int sourceThreads = Utility.cpus();
|
private int sourceThreads = Utility.cpus();
|
||||||
|
|||||||
@@ -2585,7 +2585,7 @@ public abstract class AbstractDataSqlSource extends AbstractDataSource implement
|
|||||||
@Override
|
@Override
|
||||||
public <D extends Serializable, T> CompletableFuture<List<T>> findsListAsync(final Class<T> clazz, final Stream<D> pks) {
|
public <D extends Serializable, T> CompletableFuture<List<T>> findsListAsync(final Class<T> clazz, final Stream<D> pks) {
|
||||||
final EntityInfo<T> info = loadEntityInfo(clazz);
|
final EntityInfo<T> info = loadEntityInfo(clazz);
|
||||||
Serializable[] ids = pks.toArray(v -> new Serializable[v]);
|
Serializable[] ids = pks.toArray(serialArrayFunc);
|
||||||
return queryListAsync(info.getType(), null, null, FilterNode.create(info.getPrimarySQLColumn(), FilterExpress.IN, ids));
|
return queryListAsync(info.getType(), null, null, FilterNode.create(info.getPrimarySQLColumn(), FilterExpress.IN, ids));
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
@@ -1530,7 +1530,7 @@ public interface DataSource extends Resourcable {
|
|||||||
* @return Entity对象
|
* @return Entity对象
|
||||||
*/
|
*/
|
||||||
default <D extends Serializable, T> T[] finds(final Class<T> clazz, final Stream<D> pks) {
|
default <D extends Serializable, T> T[] finds(final Class<T> clazz, final Stream<D> pks) {
|
||||||
return finds(clazz, (SelectColumn) null, pks.toArray(v -> new Serializable[v]));
|
return finds(clazz, (SelectColumn) null, pks.toArray(Utility.serialArrayFunc()));
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
@@ -1559,7 +1559,7 @@ public interface DataSource extends Resourcable {
|
|||||||
* @return Entity对象 CompletableFuture
|
* @return Entity对象 CompletableFuture
|
||||||
*/
|
*/
|
||||||
default <D extends Serializable, T> CompletableFuture<T[]> findsAsync(final Class<T> clazz, final Stream<D> pks) {
|
default <D extends Serializable, T> CompletableFuture<T[]> findsAsync(final Class<T> clazz, final Stream<D> pks) {
|
||||||
return findsAsync(clazz, (SelectColumn) null, pks.toArray(v -> new Serializable[v]));
|
return findsAsync(clazz, (SelectColumn) null, pks.toArray(Utility.serialArrayFunc()));
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
@@ -1588,7 +1588,7 @@ public interface DataSource extends Resourcable {
|
|||||||
* @return Entity对象
|
* @return Entity对象
|
||||||
*/
|
*/
|
||||||
default <D extends Serializable, T> T[] finds(final Class<T> clazz, final SelectColumn selects, final Stream<D> pks) {
|
default <D extends Serializable, T> T[] finds(final Class<T> clazz, final SelectColumn selects, final Stream<D> pks) {
|
||||||
return finds(clazz, selects, pks.toArray(v -> new Serializable[v]));
|
return finds(clazz, selects, pks.toArray(Utility.serialArrayFunc()));
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
@@ -1617,7 +1617,7 @@ public interface DataSource extends Resourcable {
|
|||||||
* @return Entity对象
|
* @return Entity对象
|
||||||
*/
|
*/
|
||||||
default <D extends Serializable, T> CompletableFuture<T[]> findsAsync(final Class<T> clazz, final SelectColumn selects, final Stream<D> pks) {
|
default <D extends Serializable, T> CompletableFuture<T[]> findsAsync(final Class<T> clazz, final SelectColumn selects, final Stream<D> pks) {
|
||||||
return findsAsync(clazz, selects, pks.toArray(v -> new Serializable[v]));
|
return findsAsync(clazz, selects, pks.toArray(Utility.serialArrayFunc()));
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
|
|||||||
@@ -52,6 +52,8 @@ public final class Utility {
|
|||||||
|
|
||||||
private static final IntFunction<CompletableFuture[]> futureArrayFunc = c -> new CompletableFuture[c];
|
private static final IntFunction<CompletableFuture[]> futureArrayFunc = c -> new CompletableFuture[c];
|
||||||
|
|
||||||
|
private static final IntFunction<Serializable[]> serialArrayFunc = v -> new Serializable[v];
|
||||||
|
|
||||||
static {
|
static {
|
||||||
Class clz = null;
|
Class clz = null;
|
||||||
try {
|
try {
|
||||||
@@ -208,6 +210,14 @@ public final class Utility {
|
|||||||
return signalShutdownConsumer;
|
return signalShutdownConsumer;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
public static IntFunction<Serializable[]> serialArrayFunc() {
|
||||||
|
return serialArrayFunc;
|
||||||
|
}
|
||||||
|
|
||||||
|
public static IntFunction<CompletableFuture[]> futureArrayFunc() {
|
||||||
|
return futureArrayFunc;
|
||||||
|
}
|
||||||
|
|
||||||
public static void sleep(long millis) {
|
public static void sleep(long millis) {
|
||||||
try {
|
try {
|
||||||
Thread.sleep(millis);
|
Thread.sleep(millis);
|
||||||
|
|||||||
Reference in New Issue
Block a user