Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/dart/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Airflow 气流:仅允许一个任务实例_Airflow - Fatal编程技术网

Airflow 气流:仅允许一个任务实例

Airflow 气流:仅允许一个任务实例,airflow,Airflow,有没有办法指定一个任务只能并发运行一次?那么在上面的树中,DAG并发性为4,气流将启动任务4,而不是任务2的第二个实例 这个DAG有点特殊,因为任务之间没有顺序。这些任务是独立的,但目的相关,因此保留在一个DAG中,以便创建过多的单任务DAG max\u active\u runs为2,dag\u concurrency为4。我希望它启动所有4个任务,并且如果上一次运行中完成了相同的任务,则只在下一次运行中启动一个任务。我可能误解了您的问题,但我相信您希望在下一次运行中开始任务之前,在一次运行中

有没有办法指定一个任务只能并发运行一次?那么在上面的树中,DAG并发性为4,气流将启动任务4,而不是任务2的第二个实例

这个DAG有点特殊,因为任务之间没有顺序。这些任务是独立的,但目的相关,因此保留在一个DAG中,以便创建过多的单任务DAG


max\u active\u runs
为2,
dag\u concurrency
为4。我希望它启动所有4个任务,并且如果上一次运行中完成了相同的任务,则只在下一次运行中启动一个任务。

我可能误解了您的问题,但我相信您希望在下一次运行中开始任务之前,在一次运行中完成所有任务。因此,DAG只会在前一次执行完成后执行

如果是这种情况,您可以使用dag的
max\u active\u runs
参数来限制允许dag同时运行的实例数量

此处有更多信息(参考最后一个点):

max_active_runs定义允许有多少个DAG并发实例运行


在[core]下的afflow.cfg上。你会发现

dag_并发=16 //计划程序允许并发运行的任务实例数

您可以根据自己的意愿自由更改此设置。

官方触发规则:

依赖于过去(布尔值)当设置为True时,如果任务的上一个计划未成功,则可防止任务触发


因此,未来的DAG将等待前面的DAG成功完成后再执行。

描述了参数
任务\u并发性。只需将其设置为1。

不,我不是指DAG的实例,而是指DAG中每个任务的实例。如果是这种情况,您可以考虑使用不同的
优先级权重
以特定顺序执行DAG中的任务。您还应该了解可以应用于dag的各种触发器规则。你可以找到更多关于他们的信息。您可以使用“依赖于过去”规则,但请记住触发规则依赖于成功的任务(不仅仅是完成)。我的问题与DAG实例无关,而是DAG中每个任务的实例。对不起,您的DAG数也是4,因此我误解了。请问您如何定义触发规则?因为正常情况下,上游任务成功时会触发任务。您可以看到官方消息,如果您必须重新运行由成功实例交错的失败任务,那么这将不起作用。