如何查看已完成或剩余的map_异步作业的数量?

2024-03-29 15:24:26 发布

您现在位置:Python中文网/ 问答频道 /正文

我使用iPython的并行处理工具进行大地图操作。在等待映射操作完成时,我想向用户显示已完成的作业数、正在运行的作业数以及剩余的作业数。我怎样才能找到这些信息?在

这就是我要做的。我创建了一个使用本地引擎并启动两个工人的概要文件。在外壳中:

$ ipython profile create --parallel --profile=local
$ ipcluster start --n=2 --profile=local

下面是客户端Python脚本:

^{pr2}$

脚本的输出示例:

After 0 s: 2 running
After 1 s: 2 running
After 2 s: 2 running
After 3 s: 2 running
After 4 s: 2 running
After 5 s: 2 running
After 6 s: 2 running
After 7 s: 2 running
After 8 s: 2 running
After 9 s: 2 running
After 10 s: 2 running
After 11 s: 2 running
After 12 s: 2 running
After 13 s: 2 running
After 14 s: 1 running
After 15 s: 1 running
After 16 s: 1 running
After 17 s: 1 running
After 18 s: 1 running
After 19 s: 1 running
After 20 s: 1 running
After 21 s: 1 running
After 22 s: 1 running
After 23 s: 1 running
[9, 14, 10, 3]

如您所见,我可以得到当前正在运行的作业的数量,但不能获得已完成(或剩余)的作业数。我怎样才能知道map_async的工作已经完成了多少?在


Tags: 文件工具用户引擎脚本信息localipython
1条回答
网友
1楼 · 发布于 2024-03-29 15:24:26

AsyncResult有一个msg_ids属性。出色的工作是这与rc.未完成,与完成的作业不同:

msgset = set(ar.msg_ids)
completed = msgset.difference(rc.outstanding)
pending = msgset.intersection(rc.outstanding)

相关问题 更多 >