:py:mod:`airflow.models.taskreschedule`
=======================================

.. py:module:: airflow.models.taskreschedule

.. autoapi-nested-parse::

   TaskReschedule tracks rescheduled task instances.



Module Contents
---------------

Classes
~~~~~~~

.. autoapisummary::

   airflow.models.taskreschedule.TaskReschedule




.. py:class:: TaskReschedule(task, run_id, try_number, start_date, end_date, reschedule_date, map_index = -1)

   Bases: :py:obj:`airflow.models.base.Base`

   TaskReschedule tracks rescheduled task instances.

   .. py:attribute:: __tablename__
      :annotation: = task_reschedule

      

   .. py:attribute:: id
      

      

   .. py:attribute:: task_id
      

      

   .. py:attribute:: dag_id
      

      

   .. py:attribute:: run_id
      

      

   .. py:attribute:: map_index
      

      

   .. py:attribute:: try_number
      

      

   .. py:attribute:: start_date
      

      

   .. py:attribute:: end_date
      

      

   .. py:attribute:: duration
      

      

   .. py:attribute:: reschedule_date
      

      

   .. py:attribute:: __table_args__
      

      

   .. py:attribute:: dag_run
      

      

   .. py:attribute:: execution_date
      

      

   .. py:method:: query_for_task_instance(task_instance, descending=False, session=None, try_number=None)
      :staticmethod:

      Returns query for task reschedules for a given the task instance.

      :param session: the database session object
      :param task_instance: the task instance to find task reschedules for
      :param descending: If True then records are returned in descending order
      :param try_number: Look for TaskReschedule of the given try_number. Default is None which
          looks for the same try_number of the given task_instance.


   .. py:method:: find_for_task_instance(task_instance, session=None, try_number=None)
      :staticmethod:

      Returns all task reschedules for the task instance and try number,
      in ascending order.

      :param session: the database session object
      :param task_instance: the task instance to find task reschedules for
      :param try_number: Look for TaskReschedule of the given try_number. Default is None which
          looks for the same try_number of the given task_instance.



