簡體   English   中英

如何設置兩名工人在氣流中

[英]How to setup two workers in airflow

我有兩個工人和三個任務。

dag = DAG('dummy_for_testing', default_args=default_args)

t1 = BashOperator(
    task_id='print_task1',
    bash_command='task1.py',
    dag=dag)

t2 = BashOperator(
    task_id='print_task2',
    bash_command='task2.py',
    dag=dag)

t3 = BashOperator(
    task_id='print_task3',
    bash_command='task3.py',
    dag=dag)

t1 >> t2 >> t3

假設我正在執行特定文件上的tasks(t1,t2,t3) 當前,所有工作都在一個工作程序上進行,但是我想設置另一個工作程序,該工作程序將接收第一個任務的輸出並執行任務t2,然后執行任務t3。 這樣, queue1將對下一個文件執行t1 我該如何為兩名工人做這項工作。 我正在考慮使用queues但是不明白如何使queue1等到queue2任務t1完成。

除了啟動這兩個工作程序外,您無需執行任何其他操作,它們將在任務可用時並在配置中定義的並發/並行性約束下拾取任務。

在您給出的示例中,任務可能完全運行一個worker 1worker 2或兩者的混合運行。 這是因為t2直到t1完成才開始。 t1完成和t2開始之間的時間內,兩個工作人員都將處於閑置狀態(假設您沒有其他dag在運行)。 在保留要運行的t2任務中將贏得比賽。

如果您需要在不同的工作線程上運行特定的任務(例如,讓一個或多個工作線程具有更高的可用資源級別或特殊的硬件),則可以在任務級別指定隊列。 隊列不會影響任務的運行順序,因為Airflow調度程序將確保任務沒有運行,直到上游的任務成功運行為止。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM