跳转到主要内容

一个将任务分配到固定数量的进程中的工具,并收集输出,以更好地利用多进程。

项目描述

Disttask是一个提供将任务分配到固定数量的进程并收集输出的工具,以更好地利用多进程。

使用它与现有的单线程/进程工具和脚本一起使用,以充分利用您的计算机资源。

提供将任务分配到固定数量的进程的能力,以更好地利用多进程。

用法

用法:disttask [cmd] [并发任务] [参数集]

在[cmd]中使用%s来指定参数的位置,使用%d来指定管道号。

要运行命令列表(作业服务器),将“%s”用作完整命令。

如果需要字面意义上的%s或%d,请使用%%s或%%d。

选项

-nc或–no-collate 默认情况下,输出将保留到任务完成,因此输出不会混合。

通过提供“-nc”或“–no-collate”,而不是在任务完成前保留输出,

从任何正在运行的任务接收的每一行都会打印出来,前面带有方括号中的argset(例如,“[arg1] Some message”)

从stdin获取参数集

如果argset是“–”,则将从stdin读取argset项,而不是在命令行中提供。

执行立即开始,因此您可以使用disttask作为作业管理器,另一个进程在项目可用时提供项目。

最大并发数

您可以使用“0”或“MAX”作为“并发任务”参数,以同时执行argset中的所有项目。

示例用法

disttask “ssh root@%s hostname” 3 host1 host2 host3 host4 host5 host6 # 同时连接到6个主机,每次3个。

disttask版本2.2.0

并发

应用程序最多运行“并发任务”数量的进程(最好将此数字与可用于此的处理器总数匹配 - 1)。它捕获stdout和stderr,以确保输出不会在应用程序之间交织。

输出

每个任务完成后,输出将完整写入,除非提供了“-nc”或“–no-collate”参数,在这种情况下,输出将一出现就打印,每行前以方括号中的项目名称为前缀。

指定命令

每个命令应指定一个“%s”,每个参数将进入那里(每个应用程序来自@argset的一个参数)。要提供整个命令,请简单地使用“%s”作为“cmd”,并在您的“argset”中提供命令。命令由shell执行,因此可以包含shell表达式。

“%d”也作为管道号可用,可以用来区分运行中的进程。

您还可以通过提供‘--’作为argset,将程序或文件管道输出到disttask。Disttask将运行并从stdin读取,将每行作为argset项处理,并在stdin关闭且所有子进程完成后终止。

示例

使用disttask并行连接到各种主机并执行命令

disttask “echo -n ‘pipe %d: ‘ && ssh root@%s hostname” 2 “host1” “host2” “host3” “host4”

管道0: host1

管道1: host2

管道0: host3

管道1: host4

相同的示例,使用“no-collate”选项

disttask “echo -n ‘pipe %d: ‘ && ssh root@%s hostname” 2 “host1” “host2” “host3” “host4”

[host1] 管道0: host1

[host2] 管道1: host2

[host3] 管道0: host3

[host4] 管道1: host4

在子目录中的所有Python文件上运行pyflakes,使用10个并发进程(需要shopt -s globstar。注意使用的是反引号,而不是单引号。)

disttask “pyflakes %s” 10 echo **/*.py

用法:disttask [cmd] [并发任务] [参数集]

在[cmd]中指定%s,其中您希望参数进入。使用%d作为管道号。要运行命令列表(作业服务器),请确保‘%s’是您的完整命令。

选项

-nc或–no-collate 默认情况下,输出将保留到任务完成,因此输出不会混合。

通过提供“-nc”或“–no-collate”,而不是来自任何正在运行的任务的每一行都打印,前以方括号中的argset为前缀(例如,“[arg1] Some message”)

从stdin获取参数集

如果argset是“–”,则将从stdin读取argset项,而不是在命令行中提供。执行立即开始,因此您可以使用disttask作为作业管理器,另一个进程在项目可用时提供项目。

最大并发数

您可以使用“0”或“MAX”作为“并发任务”参数,以同时执行argset中的所有项目。

示例用法

disttask “ssh root@%s hostname” 3 host1 host2 host3 host4 host5 host6 # 同时连接到6个主机,每次3个。

disttask版本2.1.1

项目详情


下载文件

下载适用于您的平台文件。如果您不确定选择哪个,请了解有关安装包的更多信息。

源分布

disttask-2.4.0.tar.gz (20.7 kB 查看散列)

上传于 源码

由以下支持