WANG преди 6 години
родител
ревизия
70faa667c5

+ 1 - 1
examcloud-task-service/src/main/java/cn/com/qmth/examcloud/task/service/DataSyncService.java

@@ -32,6 +32,6 @@ public interface DataSyncService {
 	 * @param retry
 	 * @return
 	 */
-	boolean sync(String component, String methodName, SyncBaseRequest req, Boolean retry);
+	Boolean sync(String component, String methodName, SyncBaseRequest req, Boolean retry);
 
 }

+ 27 - 14
examcloud-task-service/src/main/java/cn/com/qmth/examcloud/task/service/impl/DataSyncServiceImpl.java

@@ -54,24 +54,37 @@ public class DataSyncServiceImpl implements DataSyncService {
 	}
 
 	@Override
-	public boolean sync(String component, String methodName, SyncBaseRequest req, Boolean retry) {
+	public Boolean sync(String component, String methodName, SyncBaseRequest req, Boolean retry) {
 		String url = PropertiesUtil.getString("$sync." + methodName + ".component." + component);
 		req.setUrl(url);
 
+		boolean async = PropertiesUtil.getBoolean("$sync.async", true);
 		boolean successful = false;
-		try {
-			Method method = handleSyncCloudService.getClass().getMethod(methodName, req.getClass());
-			method.invoke(handleSyncCloudService, req);
-			successful = true;
-		} catch (Exception e) {
-			if (retry) {
-				DataSyncEntity entity = new DataSyncEntity();
-				entity.setComponent(component);
-				entity.setMethodName(methodName);
-				entity.setParamType(req.getClass().getName());
-				entity.setSyncNum(0);
-				entity.setParamJson(JsonUtil.toJson(req));
-				dataSyncRepo.saveAndFlush(entity);
+
+		if (async) {
+			DataSyncEntity entity = new DataSyncEntity();
+			entity.setComponent(component);
+			entity.setMethodName(methodName);
+			entity.setParamType(req.getClass().getName());
+			entity.setSyncNum(0);
+			entity.setParamJson(JsonUtil.toJson(req));
+			dataSyncRepo.saveAndFlush(entity);
+		} else {
+			try {
+				Method method = handleSyncCloudService.getClass().getMethod(methodName,
+						req.getClass());
+				method.invoke(handleSyncCloudService, req);
+				successful = true;
+			} catch (Exception e) {
+				if (retry) {
+					DataSyncEntity entity = new DataSyncEntity();
+					entity.setComponent(component);
+					entity.setMethodName(methodName);
+					entity.setParamType(req.getClass().getName());
+					entity.setSyncNum(0);
+					entity.setParamJson(JsonUtil.toJson(req));
+					dataSyncRepo.saveAndFlush(entity);
+				}
 			}
 		}
 

+ 2 - 0
examcloud-task-starter/src/main/resources/application-dev.properties

@@ -10,6 +10,8 @@ eureka.client.serviceUrl.defaultZone=http://eureka-host:1111/eureka/
 $tempDir=D:/Temp/tempDir
 $dir=D:/Temp/dir
 
+$sync.async=false
+
 $sync.syncStudent.group=EXAMWORK,MARKING,OE
 $sync.syncStudent.component.EXAMWORK=http://EC-CORE-EXAMWORK/api/core/examwork/dataSync/syncStudent
 $sync.syncStudent.component.MARKING=http://EC-CORE-MARKING/api/core/marking/dataSync/syncStudent

+ 2 - 0
examcloud-task-starter/src/main/resources/application-prod.properties

@@ -14,6 +14,8 @@ spring.redis.pool.max-active=2000
 $tempDir=/root/project/examcloud/examcloud-task/tempDir
 $dir=/root/project/examcloud/examcloud-task/dir
 
+$sync.async=true
+
 $sync.syncStudent.group=EXAMWORK,MARKING,OE
 $sync.syncStudent.component.EXAMWORK=http://EC-CORE-EXAMWORK/api/core/examwork/dataSync/syncStudent
 $sync.syncStudent.component.MARKING=http://EC-CORE-MARKING/api/core/marking/dataSync/syncStudent

+ 2 - 0
examcloud-task-starter/src/main/resources/application-test.properties

@@ -12,6 +12,8 @@ eureka.client.serviceUrl.defaultZone=http://eureka-host:1111/eureka/
 $tempDir=/home/qmth/project/examcloud/examcloud-task/tempDir
 $dir=/home/qmth/project/examcloud/examcloud-task/dir
 
+$sync.async=false
+
 $sync.syncStudent.group=EXAMWORK,MARKING,OE
 $sync.syncStudent.component.EXAMWORK=http://EC-CORE-EXAMWORK/api/core/examwork/dataSync/syncStudent
 $sync.syncStudent.component.MARKING=http://EC-CORE-MARKING/api/core/marking/dataSync/syncStudent