原文发布时间:2015-03-11
作者:一辉
WorkspaceRunner这个转换器想必不少朋友都用到过,它的作用是在一个工作空间中执行另外一个工作空间,当然这还不是关键,关键是他可以同时开7个fme.exe的线程,在我们的计算机硬件配置足够强大,内存cpu足够强大的时候能够大幅度的提升数据处理的效率。
关于该转换器的一般用法其他博客曾经提到过,这里就不做介绍了,本文主要介绍使用该转换器做多线程任务处理的时候,该如何判断所有进程是否结束。
并行处理参数设置
通过尝试我们发现WorkspaceRunner的三个输出端口里面,在上图参数设置为No的时候,三个端口的数据都会很快的通过,在这个转换器内部无法控制等到所有进程执行结束再进入下一个转换器,所以我们必须想其他的办法。
思路:通过Summary端口里面的_processes{}列表,在系统的进程列表里是否能够找到,如果能找到则证明未执行结束,如果找不到则证明已经执行结束,这里我们根据进程的PID来判断。