Browse Source

1. 执行任务的,超时时间为20min;
2. 强制到时间后强制结束应用子进程

mengxiangge 5 years ago
parent
commit
88ea8c9e1b

+ 2 - 1
Dispatcher/Client/Start/RevitCmdExecutor.cs

@@ -46,8 +46,9 @@ namespace Client.Start
                                               "\"" + filePathList.First() + "\"";
                 process.Start();//执行
                 //string msg = process.StandardOutput.ReadToEnd();//读取输出
-                process.WaitForExit();//等待执行完成
+                process.WaitForExit(21*60*1000);//等待执行完成
                 process.Close();//结束
+                process.Kill();
                 msg = ReadResultString(resultFilePath);
                 
                 Console.WriteLine(DateTime.Now + " 命令执行完成:" + revitCmd);

+ 1 - 0
Executer/DataExport/RevitExport/RevitExport.csproj

@@ -34,6 +34,7 @@
     <Reference Include="RevitAPI, Version=17.0.0.0, Culture=neutral, processorArchitecture=AMD64">
       <SpecificVersion>False</SpecificVersion>
       <HintPath>..\..\..\RevitDlls\RevitAPI.dll</HintPath>
+      <Private>False</Private>
     </Reference>
     <Reference Include="SAGA.RevitUtils, Version=1.0.0.0, Culture=neutral, processorArchitecture=MSIL">
       <SpecificVersion>False</SpecificVersion>

+ 4 - 1
Starter/StartVisionSelector/Program.cs

@@ -104,11 +104,14 @@ namespace StartVisionSelector
             process.StartInfo.Arguments = command + " "+
                                           "\"" + param + "\"" + " "+
                                           "\"" + path + "\"";//输入参数,多个参数使用空间分割,如果一个参数包含空格,使用""包括此参数
+
+
             process.Start();//执行
             string msg = process.StandardOutput.ReadToEnd();//读取输出
             Console.WriteLine(msg);
-            process.WaitForExit();//等待执行完成
+            process.WaitForExit(20*60*1000);//等待执行完成
             process.Close();//结束
+            process.Kill();
             #endregion
             Console.WriteLine("end");
             //强制退出

+ 3 - 2
Starter/Starter/Program.cs

@@ -38,12 +38,12 @@ namespace ExportStart
             if (string.IsNullOrWhiteSpace(command))
             {
                 command = "DataExport";
-                //command = "DataCheck";
+                command = "DataCheck";
                 path = @"E:\导出测试\testSpace.rvt";
                 path = @"E:\导出测试\系统图修改编码版\消防系统图模型第一版V1219.rvt";
                 path = @"E:\导出测试\无锡系统图1225\热源系统图模型第一版V1225.rvt";
                 path = @"D:\给排水系统图模型第一版V1225.rvt";
-                path = @"C:\Users\SAGACLOUD\Desktop\亿达模型2020.03.27\F2.rvt";
+                path = @"E:\1245.rvt";
 
                 //path = @"C:\Users\SAGACLOUD\Desktop\F1\建筑-F1.rvt";
                 //path = @"D:\安装包\CAD\测试模型\F4测试.rvt";
@@ -91,6 +91,7 @@ namespace ExportStart
                 Console.WriteLine("Task EndTime:" + DateTime.Now);
                 RevitCoreContext.Instance.Stop();
             }
+            
             //强制退出
             Environment.Exit(0);
         }

+ 8 - 1
Starter/Starter/RevitCoreContext.cs

@@ -89,7 +89,14 @@ namespace ExportStart
 
                 if (File.Exists(file))
                 {
-                    return Assembly.LoadFile(file);
+                    try
+                    {
+                        return Assembly.LoadFile(file);
+                    }
+                    catch (Exception e)
+                    {
+                        Console.WriteLine(e);
+                    }
                 }
             }