You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
I've set the core default_timezone and default_ui_timezone values to America/Los_Angeles which successfully makes the scheduler respect the local Pacific timezone, however, when I create a task using the DateTimeSensor in a dag with schedule_interval='@daily' and would like that particular task to wait until 3am Pacific using the below code, it still appears to be using UTC rather than Pacific and completes as soon as it's scheduled, at midnight Pacific, rather than waiting until 3am Pacific. I believe this is happening at midnight Pacific because the dag itself is bound by the schedule_interval='@daily' which is in Pacific time and when it checks if it's 3am UTC yet, it evaluates to the past and executes.
One way to get this working as expected is to change it to the following, which explicitly specifies the timezone, but this is tedious as it would need to be used everywhere and I'd like to be able to develop all dags without having to think about timezone since everything is Pacific timezone-based:
I think there are currently a few timezone behaviours that @bbovenzi and @uranusjr and @ephraimbuddy are handling - I am not sure if the current proposal falls into it and how consistency would be applided but those seem to be related #24373#17131#21171#23796 for example.
This issue has been automatically marked as stale because it has been open for 365 days without any activity. There has been several Airflow releases since last activity on this issue. Kindly asking to recheck the report against latest Airflow version and let us know if the issue is reproducible. The issue will be closed in next 30 days if no further activity occurs from the issue author.
Apache Airflow version
2.2.5
What happened
I've set the core default_timezone and default_ui_timezone values to America/Los_Angeles which successfully makes the scheduler respect the local Pacific timezone, however, when I create a task using the DateTimeSensor in a dag with schedule_interval='@daily' and would like that particular task to wait until 3am Pacific using the below code, it still appears to be using UTC rather than Pacific and completes as soon as it's scheduled, at midnight Pacific, rather than waiting until 3am Pacific. I believe this is happening at midnight Pacific because the dag itself is bound by the schedule_interval='@daily' which is in Pacific time and when it checks if it's 3am UTC yet, it evaluates to the past and executes.
start = DateTimeSensor(
task_id='start',
target_time='{{ data_interval_end.replace(hour=3) }}',
dag=dag,
)
One way to get this working as expected is to change it to the following, which explicitly specifies the timezone, but this is tedious as it would need to be used everywhere and I'd like to be able to develop all dags without having to think about timezone since everything is Pacific timezone-based:
start = DateTimeSensor(
task_id='start',
target_time='{{ data_interval_end.replace(tzinfo="America/Los_Angeles", hour=3) }}',
dag=dag,
)
What you think should happen instead
I think it makes sense to automatically make all behaviors related to timezone match the scheduler's timezone unless otherwise explicitly specified.
How to reproduce
set the core default_timezone and default_ui_timezone values to America/Los_Angeles.
Observe the tasks executions and note the time that the DateTimeSensors are completing.
Operating System
Ubuntu 18.04.6 LTS (Bionic Beaver)
Versions of Apache Airflow Providers
composer-1.18.11-airflow-2.2.5 (provided by Google, GCP Composer)
Deployment
Composer
Deployment details
No response
Anything else
No response
Are you willing to submit PR?
Code of Conduct
The text was updated successfully, but these errors were encountered: