Я создал группу доступности базы данных, которая начинается в полночь каждый день недели. Он содержит датчик, который ожидает события в базе данных, после которого начинается фактическая работа. Событие может произойти через 1 минуту после запуска DAG или через 10 часов после запуска DAG (и это нормально). Я не хочу включать время, затраченное на ожидание срабатывания датчика, в SLA.
Итак, я хочу управлять SLA на времени выполнения оператора , а не на DAG от начала до конца. Возможно ли это?
Ниже будет управлять с момента запуска DAG (хотя SLA определен на операторе)
DEFAULT_ARGS = {
'owner': 'abc@def.com',
'depends_on_past': False,
'start_date': datetime(2020, 3, 1)
}
with DAG('Start a job',
description='Start DAG which waits for event and then executes the job.',
catchup=False,
schedule_interval="0 0 * * 1-5",
default_args=DEFAULT_ARGS) as dag:
DWH_SENSOR = WarehouseMilestoneSensor(
task_id="wait_for_warehouse_milestone"
)
START_JOB = SqlAgentOperator(job_name='ClientValueScore',
await_completion=True,
mssql_conn_id="sqlagent",
task_id="start-ClientValueScore-job",
sla=timedelta(minutes=150))
DWH_SENSOR >> START_JOB