微信小程序页面迁移校验之前 P5任务处理之前
This commit is contained in:
@@ -184,11 +184,18 @@ class BaseTask:
|
||||
if not (override_start and override_end):
|
||||
raise ValueError("run.window_override.start/end 需要同时提供")
|
||||
|
||||
# CHANGE 2026-03-04 | 纯日期字符串按业务日分割:start→当天biz_hour, end→次日biz_hour
|
||||
biz_hour = int(self.config.get("app.business_day_start_hour", 8))
|
||||
|
||||
window_start = override_start
|
||||
if isinstance(window_start, str):
|
||||
window_start = dtparser.parse(window_start)
|
||||
if isinstance(window_start, datetime) and window_start.tzinfo is None:
|
||||
window_start = window_start.replace(tzinfo=self.tz)
|
||||
# 纯日期(时分秒全零)→ 当天业务日起始时刻
|
||||
if window_start.hour == 0 and window_start.minute == 0 and window_start.second == 0:
|
||||
window_start = window_start.replace(hour=biz_hour, tzinfo=self.tz)
|
||||
else:
|
||||
window_start = window_start.replace(tzinfo=self.tz)
|
||||
elif isinstance(window_start, datetime):
|
||||
window_start = window_start.astimezone(self.tz)
|
||||
|
||||
@@ -196,7 +203,11 @@ class BaseTask:
|
||||
if isinstance(window_end, str):
|
||||
window_end = dtparser.parse(window_end)
|
||||
if isinstance(window_end, datetime) and window_end.tzinfo is None:
|
||||
window_end = window_end.replace(tzinfo=self.tz)
|
||||
# 纯日期(时分秒全零)→ 次日业务日起始时刻
|
||||
if window_end.hour == 0 and window_end.minute == 0 and window_end.second == 0:
|
||||
window_end = (window_end + timedelta(days=1)).replace(hour=biz_hour, tzinfo=self.tz)
|
||||
else:
|
||||
window_end = window_end.replace(tzinfo=self.tz)
|
||||
elif isinstance(window_end, datetime):
|
||||
window_end = window_end.astimezone(self.tz)
|
||||
|
||||
|
||||
Reference in New Issue
Block a user