title: Airflow schedule interval with ExternalTaskSensor
body: <p>I'm trying to set up airflow with two dags on an interval of "every 30 minutes".</p>
  
  <p>The first dag (<em>extract</em>) looks like this:</p>
  
  <blockquote>
    <p>extract_table_user_schema >> extract_table_user_data >> finish_extract_table_user</p>
  </blockquote>
  
  <p><img src="https://i.stack.imgur.com/AZzdK.png" alt="extract dag"></p>
  
  <p>The second dag (<em>transform</em>) looks like this:</p>
  
  <blockquote>
    <p>sensor_wait_for_finish_extract_table_user >> transform_table_user >> finish_transform_table_user</p>
  </blockquote>
  
  <p><img src="https://i.stack.imgur.com/Ut3Q9.png" alt="transform dag"></p>
  
  <p>For both dags I've set up the schedule_interval to <code>"*/30 * * * *"</code></p>
  
  <p>The ExternalTaskSensor is set up with <code>execution_delta=timedelta(minutes=30)</code></p>
  
  <p>My expected flow of the tasks would be: at first the <em>extract</em> dag is run. Then, after the dummy task <code>finish_tranform_table_user</code> is successful the sensor is triggered and the tasks in <em>transform</em> are run. </p>
  
  <p>It just runs fine for the first time, but when I wait for the second run the tasks interrupt themself.
  I've observed the <em>extract</em> dag being interupted by the <code>transform_table_user</code> task which changes some column names. This results in a failed <code>extract_table_user_data</code> since the column names do not match any more.</p>
  
  <p><strong>Edit:</strong> to be more specific what are the expected &amp; occurring results</p>
  
  <p>First, the rundown what each task is supposed to do:</p>
  
  <p>(sql)<code>extract_table_user_schema</code>: copies the schema from the user table</p>
  
  <p>(sql)<code>extract_table_user_data</code>: copies data from the source table user into the copy of that table</p>
  
  <p>(dummy)<code>finish_extract_table_user</code>: dummy task</p>
  
  <p>(sensor)<code>sensor_wait_for_finish_extract_table_user</code>: sensor to wait until the extract is finished</p>
  
  <p>(sql)<code>transform_table_user</code>: renames a column field from <code>id</code> to <code>user_id</code></p>
  
  <p>(dummy)<code>finish_transform_table_user</code>: dummy task</p>
  
  <p>Now, the first time the dags are run the result is a copied schema + data and a renamed field. All tasks as successful
  The second time the dags are run, one tasks fails and one task is not run. The other are all successful.
  The task <code>extract_table_user_data</code> fails with the error message; no such field as <code>id</code>.
  The task <code>finish_extract_table_user</code> was not run</p>
  
  <p>The resulting table was a copied schema but no data <em>and</em> a renamed field.</p>
  
  <p>So I assume the task <code>transform_table_user</code> was run right after the schema was copied. Maybe the set <code>execution_delta=timedelta(minutes=30)</code> is wrong somehow? Maybe I'm misunderstanding the api doc for the sensor?</p>
  
  <p>Help would be appreciated!</p>