airflow時區問題

pip安裝apache-airflow 的修改方式

1、在airflow家目錄下修改airflow.cfg,設置

default_timezone = Asia/Shanghai

2、進入airflow包的安裝位置,也就是site-packages的位置,以下修改文件均爲相對位置

修改airflow/utils/timezone.py

在 utc = pendulum.timezone(‘UTC’) 這行(第27行)代碼下添加,

from airflow import configuration as conf  
# from airflow.configuration import conf    最新版的修改方式
try:
	tz = conf.get("core", "default_timezone")
	if tz == "system":
		utc = pendulum.local_timezone()
	else:
		utc = pendulum.timezone(tz)
except Exception:
	pass

修改utcnow()函數 (在第69行)

原代碼 d = dt.datetime.utcnow() 
修改爲 d = dt.datetime.now()

修改airflow/utils/sqlalchemy.py

在utc = pendulum.timezone(‘UTC’) 這行(第37行)代碼下添加

from airflow import configuration as conf
# from airflow.configuration import conf    最新版的修改方式
try:
	tz = conf.get("core", "default_timezone")
	if tz == "system":
		utc = pendulum.local_timezone()
	else:
		utc = pendulum.timezone(tz)
except Exception:
	pass

修改airflow/www/templates/admin/master.html(第31行)

把代碼 var UTCseconds = (x.getTime() + x.getTimezoneOffset()*60*1000); 
改爲 var UTCseconds = x.getTime();

把代碼 "timeFormat":"H:i:s %UTC%",
改爲  "timeFormat":"H:i:s",

註釋airflow/utils/sqlalchemy.py中的cursor.execute(“SET time_zone = ‘+00:00’”) (第124行)

最後重啓airflow-webserver即可

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章