2017-11-02 7 views
0

毎月11時に2回目のエアフローを実行しようとしていますが、私はそうしていません。私の設定は次のとおりです。特定の時刻に特定のday_of_monthにエアフローを実行するにはどうすればよいですか?

schedule_interval='00 11 * * *' 

が、私はそれは月単位のために動作させることができていないようです:(:私は毎日のようにDAGを実行したときに

default_args = { 
    'owner': 'airflow', 
    'depends_on_past': False, 
    'start_date': today_date, 
    'email': ['mymail'], 
    'email_on_failure': True, 
    'email_on_retry': True, 
    'retries': 1, 
    'retry_delay': timedelta(minutes=7), 
} 

dag = DAG('my_dag', default_args=default_args, schedule_interval='00 11 02 * *') 

エアフローは完璧に動作します

ありがとう!あなたが言及したコメントで

+0

私はそれがここにあなたの 'today_date'は何:( –

+0

'0 11 2をしようとするだろう? – vrivesmolina

+0

を動作しませんでした怖いです私はそれがcronlike文字列を解析する方法がわからないが、私は* *'代わりに – Chengzhi

答えて

0

、あなたがstart_dateためdatetime.today()使用し、それが問題を引き起こしているまさにであること。ジョブ・インスタンスが開始され、Oそれがカバーする期間は終了しましたが、あなたのケースでは決して起こらないでしょう。以下のようなものにstart_dateを調整してみてください。

from datetime import date 
from dateutil.relativedelta import relativedelta 
start_date = date.today() + relativedelta(months=-1) 

私はドキュメントの再読み込みScheduling & Triggersセクションに示唆しています。 DAGを正しくスケジューリングする方法を知るために、私も数時間かかった。

+0

はFAQにもいくつかの追加の情報を持っていることを持っているので 日時インポート日時からで、timedelta 輸入OS today_date = datetime.today() は、私は、それが問題だとは思わないことを含むようにこれについても[[開始日との取引は何ですか?]](https://airflow.apache.org/faq.html#what-s-theal-with-start-date)の下にあります。 'start_date'に動的値を使うことをお勧めしますので、私はjusを提案します日付をハードコーディングする。 –

+1

はい、あなたは正しいですが、 'catchup = False'と一緒に使われる場合に限ります。 – s7anley

+0

それはうまくいきませんでした。私はあなたが言ったことをやってみたが、プロセスはどちらかを起動していませんでした。 変なふうに十分な、他のプロセス: today_date = datetime.today() default_args = { 'オーナー': '気流' 'depends_on_past':偽、 'START_DATE':today_date、 'メール': [ 'mymal']、 'email_on_failure':真、 'email_on_retry':真、 '再試行':1、 'RETRY_DELAY' はtimedelta(分= 5)、 } DAG = DAG( 'my_dag' 、default_args = default_args、schedule_interval = '40 08 03 * * ') がトリガーして現在作業中です 「キャッチアップ」アプローチについて説明できますか? – vrivesmolina

関連する問題