簡體   English   中英

在Python的Airflow中,如何在特定時間后停止任務運行?

[英]In Python's Airflow, how can I stop a task from running after a certain time?

我正在嘗試使用Python的Airflow庫。 我希望它定期抓取網頁。

我遇到的問題是,如果我的start_date是幾天前的話,那么當我啟動調度程序時,它將從start_date回填到今天。 例如:

假設今天是每月20號。

假設開始start_date是本月15日。

如果我在20號啟動調度程序,它將在20號刮5次該頁面。 它將看到一個DAG實例假定在15號運行,並將在20號運行該DAG實例(第15個)。 然后它將在20號的16號運行DAG實例,依此類推。

簡而言之,Airflow會嘗試“追趕”,但這對於刮網沒有意義。

有什么方法可以讓Airflow在一段時間后將DAG實例視為失敗?

此功能在Airflow的路線圖中,但當前不存在。

請參閱: 問題#1155

您可以使用BranchPythonOperator一起破解一個解決方案。 如文檔中所述,請確保已設置depends_on_past=False (這是默認設置)。 我沒有設置氣流,因此目前無法測試並提供示例代碼。

氣流的設計考慮了“回填”,因此路線圖項目違背了其主要邏輯。

現在您可以更新start_date為這個特定的任務或整個DAG。

每個操作員都有一個開始日期http://pythonhosted.org/airflow/code.html#baseoperator

調度程序不適合停止。 如果今天運行它,則可以將任務start_date設置為今天,這對我來說似乎很合理。

暫無
暫無

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

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