定时任务,周计算调整。
This commit is contained in:
@@ -375,24 +375,26 @@ class MessagePushTask(MessagePluginInterface):
|
||||
|
||||
# 获取当前是周几(0-6,0是周一)
|
||||
current_weekday = now.weekday()
|
||||
weekly_days = [int(day) for day in weekly_days]
|
||||
weekly_days.sort()
|
||||
|
||||
# 找到下一个执行日
|
||||
next_weekday = None
|
||||
for day in sorted(weekly_days):
|
||||
day = int(day)
|
||||
for day in weekly_days:
|
||||
if day > current_weekday:
|
||||
next_weekday = day
|
||||
break
|
||||
|
||||
# 如果本周没有下一个执行日,取下周的第一个执行日
|
||||
if next_weekday is None:
|
||||
next_weekday = int(weekly_days[0])
|
||||
next_weekday = weekly_days[0]
|
||||
# 计算到下周第一个执行日的天数
|
||||
days_ahead = 7 - current_weekday + next_weekday
|
||||
else:
|
||||
days_ahead = next_weekday - current_weekday
|
||||
|
||||
next_time = now.replace(hour=hour, minute=minute, second=second, microsecond=0) + timedelta(
|
||||
days=days_ahead)
|
||||
# 计算下次执行时间
|
||||
next_time = now.replace(hour=hour, minute=minute, second=second, microsecond=0) + timedelta(days=days_ahead)
|
||||
|
||||
except (json.JSONDecodeError, ValueError, IndexError) as e:
|
||||
self.LOG.error(f"处理每周执行日失败: {e}")
|
||||
|
||||
Reference in New Issue
Block a user