WorkspaceRunner中多进程处理 如何判断所有进程是否结束

本文探讨如何在使用WorkspaceRunner进行多进程处理时判断所有进程是否结束。由于WorkspaceRunner内部无法控制等待所有进程执行结束,作者提出通过PythonCaller转换器和Python脚本来检查进程中fme.exe的PID,以此判断进程是否已完成。具体实现是通过监测_processes{}列表中的PID在系统进程列表中是否存在,如果不存在则表示进程已结束。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

原文发布时间:2015-03-11

作者:一辉

WorkspaceRunner这个转换器想必不少朋友都用到过,它的作用是在一个工作空间中执行另外一个工作空间,当然这还不是关键,关键是他可以同时开7个fme.exe的线程,在我们的计算机硬件配置足够强大,内存cpu足够强大的时候能够大幅度的提升数据处理的效率。

关于该转换器的一般用法其他博客曾经提到过,这里就不做介绍了,本文主要介绍使用该转换器做多线程任务处理的时候,该如何判断所有进程是否结束。

                                                                                      并行处理参数设置

通过尝试我们发现WorkspaceRunner的三个输出端口里面,在上图参数设置为No的时候,三个端口的数据都会很快的通过,在这个转换器内部无法控制等到所有进程执行结束再进入下一个转换器,所以我们必须想其他的办法。

思路:通过Summary端口里面的_processes{}列表,在系统的进程列表里是否能够找到,如果能找到则证明未执行结束,如果找不到则证明已经执行结束,这里我们根据进程的PID来判断。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值