小编Naz*_*han的帖子

Celery Worker - 从匹配正则表达式的队列中消费

背景

Celery worker 可以使用 -Q 标志针对一组队列启动。例如

-Q dev.Q1,dev.Q2,dev.Q3

到目前为止,我已经看到所有队列名称都明确列出为逗号分隔值的示例。如果我有一个很长的列表就很麻烦。

有没有一种方法可以将队列名称指定为正则表达式,芹菜工作者将从满足该正则表达式的所有队列中开始消费。

例如

-Q 开发。*

这应该消耗从 dev 开始的所有 queuess,即 dev.Q1、dev.Q2、dev.Q3。但我所看到的是 - 它创建了一个队列开发。.*

此外,我如何调整正则表达式,使其不选择错误队列,例如 dev.Q1.ERROR、dev.Q2.ERROR。

python celery django-celery

5
推荐指数
1
解决办法
335
查看次数

基于声明性管道中前一阶段结果的条件执行

我的管道设置如下。 在此处输入图片说明

我需要让它在遵守以下条件的情况下工作。帮助我定义何时使用块和其他代码以及在哪个阶段使用?

  1. 如果 A 失败,则不会执行其他阶段,并且作业运行被标记为失败。
  2. 如果任何 B 阶段失败,则不应调用相应的 C 阶段。
  3. 当 C1 或 C2 被执行时,阶段 D 应该被执行,而不管它们的执行是否失败。
  4. 此外,如果任何阶段失败,则整个作业运行状态应为失败。

我尝试并观察到了什么? 从上面定义的条件来看,1 和 2 按预期工作,但在我的以下尝试中没有 3 和 4。

在C1和C2,我加了catchError(buildResult: 'SUCCESS', stageResult: 'FAILURE')继续詹金斯管道失败过舞台

但我观察到的是——

  1. 如果 C1 或 C2 失败,则 D 执行,但所有作业运行都标记为成功。预期是失败,因为其中一个 C 步骤失败了。但由于捕获它获得成功状态。
  2. 当任何 B 阶段失败时,它们对应的 C 也不会执行(预期),但也不会触发 D。因为我需要触发 D,因为已经执行了其他一些 C。

jenkins-pipeline jenkins-declarative-pipeline

3
推荐指数
1
解决办法
3062
查看次数