工作限制

限制给定池中作业的并发执行。 更多...

属性

详细信息

除了全局运行命令限制外,项目可能还想进一步限制某些类型的命令的并发执行,例如,因为这些命令不适合共享某些类型的资源。

在以下示例中,我们定义了一个规则,该规则在任何给定时间内,同一个项目中最多只能运行一个工具实例

Rule {
    // ...
    prepare: {
        var cmd = new Command("my-exclusive-tool", [project.buildDirectory]);
        cmd.description = "running the exclusive tool";
        cmd.jobPool = "exclusive_tool";
        return cmd;
    }
}
JobLimit {
    jobPool: "exclusive_tool"
    jobCount: 1
}

JobLimit项可以出现在产品项目模块项内部。在发生冲突的情况下,即匹配相同作业池但设置不同值的项,定义在产品中的项具有最高优先级,定义在模块中的项具有最低优先级。子项目中定义的项比父项目中定义的项具有更高的优先级。对于具有相同优先级的项,选择最严格的项,即最低的作业号大于零的项。

另请参阅如何限制仅链接器的并发作业数量?

属性文档

condition : bool

确定作业限制是否活跃。

如果此属性设置为false,则忽略作业限制。

默认值:true


jobCount : int

给定作业池中可以同时运行的命令的最大数量。

零值表示“无限”,不允许负值。

注意:全局作业限制始终适用:例如,如果您为某个作业池设置此属性为100,并且命令行中指定了“-j 8”,则任何给定时间不会有超过八实例的命令从相应的作业池运行。

必须始终设置此属性。

默认值:未定义


jobPool : string

应用限制的作业池。

此属性必须始终设置为非空值。

默认值:未定义


©2023 The Qt Company Ltd. 包含在此处的文档贡献归其各自的拥有者所有版权。本提供的文档根据由自由软件基金会发布的GNU自由文档许可协议版本1.3的条款进行许可。Qt及其相关徽标是The Qt Company Ltd在芬兰和其他国家的商标。所有其他商标均为其各自所有者的财产。