title: Run only the latest Airflow DAG
body: <p>Let's say I would like to run a pretty simple ETL DAG with Airflow: 
  it checks the last insert time in DB2, and it loads newer rows from DB1 to DB2 if any.</p>
  
  <p>There are some understandable requirements:</p>
  
  <ol>
  <li>It scheduled hourly, the first few runs will last more than 1 hour 
  
  <ul>
  <li>eg. the first run should process a month data, and it lasts for 72 hours,</li>
  <li>so the second run should process the last 72 hour, it last 7.2 hours,</li>
  <li>the third processes 7.2 hours and it finishes within an hour,</li>
  <li>and from then on it runs hourly.</li>
  </ul></li>
  <li>While the DAG is running, don't start the next one, skip it instead. </li>
  <li>If the time passed the trigger event, and the DAG didn't start, don't start it subsequently.</li>
  <li>There are other DAGs as well, the DAGs should be executed independently.</li>
  </ol>
  
  <p>I've found these parameters and operator a little confusing, what is the distinctions between them?</p>
  
  <ul>
  <li><code>depends_on_past</code></li>
  <li><code>catchup</code></li>
  <li><code>backfill</code></li>
  <li><code>LatestOnlyOperator</code></li>
  </ul>
  
  <p>Which one should I use, and which LocalExecutor? </p>
  
  <p>Ps. there's already a very similar <a href="https://stackoverflow.com/questions/38751872/how-to-prevent-airflow-from-backfilling-dag-runs">thread</a>, but it isn't exhausting.</p>