Lee-W commented on code in PR #40084:
URL: https://github.com/apache/airflow/pull/40084#discussion_r1684536248
##########
airflow/sensors/time_delta.py:
##########
@@ -59,28 +59,34 @@ class TimeDeltaSensorAsync(TimeDeltaSensor):
Will defers itself to avoid taking up a worker slot while it is waiting.
:param delta: time length to wait after the data interval before
succeeding.
+ :param end_from_trigger: End the task directly from the triggerer without
going into the worker.
.. seealso::
For more information on how to use this sensor, take a look at the
guide:
:ref:`howto/operator:TimeDeltaSensorAsync`
"""
+ def __init__(self, *, end_from_trigger: bool = False, delta, **kwargs):
+ super().__init__(delta=delta, **kwargs)
+ self.end_from_trigger = end_from_trigger
+ self.delta = delta
+
def execute(self, context: Context) -> bool | NoReturn:
target_dttm = context["data_interval_end"]
target_dttm += self.delta
if timezone.utcnow() > target_dttm:
# If the target datetime is in the past, return immediately
return True
try:
- trigger = DateTimeTrigger(moment=target_dttm)
+ trigger = DateTimeTrigger(moment=target_dttm,
end_from_trigger=self.end_from_trigger)
except (TypeError, ValueError) as e:
if self.soft_fail:
raise AirflowSkipException("Skipping due to soft_fail is set
to True.") from e
raise
self.defer(trigger=trigger, method_name="execute_complete")
- def execute_complete(self, context, event=None) -> None:
- """Execute for when the trigger fires - return immediately."""
+ def execute_complete(self, context, event=None):
Review Comment:
```suggestion
def execute_complete(self, context: Context, event: Any = None) -> None:
```
--
This is an automated message from the Apache Git Service.
To respond to the message, please log on to GitHub and use the
URL above to go to the specific comment.
To unsubscribe, e-mail: [email protected]
For queries about this service, please contact Infrastructure at:
[email protected]