气流:任务调度间隔数秒,两次
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了气流:任务调度间隔数秒,两次相关的知识,希望对你有一定的参考价值。
我试图每天仅在00:15:00
(午夜15分钟)运行一次DAG,但是,它被安排了两次,相隔几秒钟。
dag = DAG(
'my_dag',
default_args=default_args,
start_date=airflow.utils.dates.days_ago(1) - timedelta(minutes=10),
schedule_interval='15 0 * * * *',
concurrency=1,
max_active_runs=1,
retries=3,
catchup=False,
)
Dag的主要目标是检查新电子邮件,然后检查SFTP目录中的新文件,然后运行“合并”任务以将这些新文件添加到数据库中。
[所有工作都是Kubernetes容器:
email_check = KubernetesPodOperator(
namespace='default',
image="g.io/email-check:0d334adb",
name="email-check",
task_id="email-check",
get_logs=True,
dag=dag,
)
sftp_check = KubernetesPodOperator(
namespace='default',
image="g.io/sftp-check:0d334adb",
name="sftp-check",
task_id="sftp-check",
get_logs=True,
dag=dag,
)
my_runner = KubernetesPodOperator(
namespace='default',
image="g.io/my-runner:0d334adb",
name="my-runner",
task_id="my-runner",
get_logs=True,
dag=dag,
)
my_runner.set_upstream([sftp_check, email_check])
因此,问题在于DAG
scheduled似乎有几秒钟的间隔。它们不会同时运行,但是第一个完成后,第二个开始,my_runner
作业准备每天仅运行一次:它试图创建一个以日期为后缀的文件,并且如果文件已经存在,它将引发异常。
有一个第一次运行已安排为“ 00:15之后22秒”(很好,有时它在这里和那里变化几秒钟),然后有第二个似乎总是被安排了“ 58在世界标准时间00:15之后的秒数](至少根据它们的名称而定)。因此,第一个运行正常,似乎没有其他运行。。。一旦运行结束,第二个运行就开始了。
一个“好”的人:
一个“坏”的人:
答案
您可以检查计划间隔参数吗?schedule_interval = '15 0 * * * *'。 Cron时间表仅包含5个参数,我看到了一个额外的星星。另外,您可以确定开始日期吗?start_date:datetime(2019,11,10)
以上是关于气流:任务调度间隔数秒,两次的主要内容,如果未能解决你的问题,请参考以下文章