|
@@ -0,0 +1,52 @@
|
|
|
+package cn.iselab.mooctest.site.web.logic.asyncProgress.impl;
|
|
|
+
|
|
|
+import cn.iselab.mooctest.site.common.acyncTask.PythonNodeCallBack;
|
|
|
+import cn.iselab.mooctest.site.common.enums.AsyncJobTool;
|
|
|
+import cn.iselab.mooctest.site.service.AsyncScheduleService;
|
|
|
+import cn.iselab.mooctest.site.service.AsyncTaskService;
|
|
|
+import cn.iselab.mooctest.site.web.data.forMongo.AsyncTaskDTO;
|
|
|
+import cn.iselab.mooctest.site.web.logic.asyncProgress.PythonNodeProgressLogic;
|
|
|
+import java.util.ArrayList;
|
|
|
+import java.util.HashMap;
|
|
|
+import java.util.List;
|
|
|
+import java.util.Map;
|
|
|
+import org.springframework.beans.factory.annotation.Autowired;
|
|
|
+import org.springframework.stereotype.Service;
|
|
|
+
|
|
|
+/**
|
|
|
+ * @author yyy
|
|
|
+ * @create 2018-03-26 16:28
|
|
|
+ */
|
|
|
+@Service
|
|
|
+public class PythonNodeProgressLogicImpl implements PythonNodeProgressLogic{
|
|
|
+
|
|
|
+ @Autowired
|
|
|
+ AsyncTaskService asyncTaskService;
|
|
|
+ @Autowired
|
|
|
+ AsyncScheduleService asyncScheduleService;
|
|
|
+
|
|
|
+ @Override
|
|
|
+ public void triggerTargetAnalysis(Long targetId, String downloadUrl) {
|
|
|
+ AsyncTaskDTO asyncTaskDTO = asyncTaskService.getAsyncTask(AsyncJobTool.PYTHON_NODE,targetId);
|
|
|
+ if(asyncTaskDTO == null){
|
|
|
+ List<Map<String,String>> params = new ArrayList<>();
|
|
|
+ List<Map<String,String>> contexts = new ArrayList<>();
|
|
|
+
|
|
|
+ Map<String,String> param = new HashMap<>();
|
|
|
+ param.put("downloadURL",downloadUrl);
|
|
|
+ param.put("extraArgs",generatePythonNodeTargetExtraArgs(downloadUrl));
|
|
|
+ params.add(param);
|
|
|
+
|
|
|
+ Map<String,String> context = new HashMap<>();
|
|
|
+ context.put("targetId",targetId.toString());
|
|
|
+ contexts.add(context);
|
|
|
+
|
|
|
+ asyncScheduleService.start(AsyncJobTool.PYTHON_NODE,params,contexts,PythonNodeCallBack.class);
|
|
|
+ }
|
|
|
+ }
|
|
|
+
|
|
|
+ private String generatePythonNodeTargetExtraArgs(String downloadUrl){
|
|
|
+ String zipName = downloadUrl.split("/")[downloadUrl.split("/").length - 1];
|
|
|
+ return "-f "+ zipName;
|
|
|
+ }
|
|
|
+}
|