2016-03-29 9 views
1

Python'un Airflow kütüphanesini kullanmaya çalışıyorum. Bir web sayfasını periyodik olarak taramak istiyorum.Python'un Hava Akışı'nda, belirli bir süre sonra bir görevin çalışmasını nasıl durdurabilirim?

Yapmakta olduğum sorun, günlüğüm start_date ise birkaç gün önce, zamanlayıcıyı başlattığımda, bugün start_date'dan yedeklenecektir. Örneğin,

Bugünün ayın 20'si olduğunu varsayalım.

start_date bu ayın 15. olduğunu varsayalım. Ben 20'sinde zamanlayıcı başlatırsanız

, bu 20'sinde sayfa 5 kez kazımak olacak. Bir DAG örneğinin 15'inde çalışacağını ve 20'de DAG örneğini (15'inci sırada) çalıştıracağını görecektir. Ve sonra Kısacası vb

, 20'sinde 16 için DAG örneğini çalışacak, Hava akışı "yakalamak" için çalışacağız, ama bu web kazıma için bir anlam ifade etmiyor.

Hava akışı belirli bir süre sonra başarısız bir DAG örneğini düşünün yapmak için herhangi bir yolu var mı?

+0

Görünüşe göre bu (http://stackoverflow.com/a/40578704/596167 bulunur) yeni 'LatestOnlyOperator' gibi birkaç ay önce Hava Akışı eklendi. –

cevap

3

Bu özellik Hava akışı için yol haritasında, ancak does anda mevcut değil.

Bkz: Issue #1155

Birlikte BranchPythonOperator kullanarak bir çözüm kesmek mümkün olabilir. Belgelerdeki gibi, depends_on_past=False'u ayarladığınızdan emin olun (bu varsayılan değerdir). Hava akışı ayarlamam yok, bu yüzden size şu anda örnek kodları test edemiyorum. yol haritası öğesi birincil mantığa aykırıdır böylece

+0

404 # 1155 numarasını yayınlamak için. Çözüldü mü? – enriquetaso

+0

, sorunları Jira'ya taşıdılar: https://issues.apache.org/jira/browse/ZOOKEEPER-2892?jql= – hoju

1

Hava akımı akılda "backfilling" ile tasarlanmıştır.

Şimdilik Bu özel görev veya tamamı dag için start_date güncelleyebilirsiniz.

Her operatör http://pythonhosted.org/airflow/code.html#baseoperator

zamanlayıcısı durdurulmasını için üretilmemiş bir START_DATE vardır. Bugün çalıştırırsanız, görev başlangıcınızı bugün ayarlayabilir, benim için mantığa bakın.

İlgili konular