This commit is contained in:
whm
2025-12-18 22:23:46 +08:00
3 changed files with 75 additions and 44 deletions

View File

@@ -78,36 +78,37 @@ class TaskScheduler:
def _setup_system_tasks(self):
"""设置系统定时任务"""
try:
logger.info("无定时任务")
# 检查是否已存在每日重置任务
existing_job = self.scheduler.get_job("daily_reset_today_updated")
# existing_job = self.scheduler.get_job("get_max_nyid")
if not existing_job:
# 添加每天午夜12点重置today_updated字段的任务
self.scheduler.add_job(
reset_today_updated_task,
'cron',
id='daily_reset_today_updated',
hour=0,
minute=0,
second=0,
name='每日重置账号更新状态'
)
logger.info("系统定时任务:每日重置账号更新状态已添加")
existing_job = None
existing_job = self.scheduler.get_job("scheduled_get_max_nyid_by_point_id")
if not existing_job:
# 添加每天凌晨1点执行获取max NYID关联数据任务
self.scheduler.add_job(
scheduled_get_max_nyid_by_point_id,
'cron',
id='scheduled_get_max_nyid_by_point_id',
hour=1,
minute=0,
second=0,
name='每日获取max NYID关联数据并创建DailyData记录'
)
logger.info("系统定时任务每日获取max NYID关联数据任务已添加")
# existing_job = self.scheduler.get_job("daily_reset_today_updated")
# # existing_job = self.scheduler.get_job("get_max_nyid")
# if not existing_job:
# # 添加每天午夜12点重置today_updated字段的任务
# self.scheduler.add_job(
# reset_today_updated_task,
# 'cron',
# id='daily_reset_today_updated',
# hour=0,
# minute=0,
# second=0,
# name='每日重置账号更新状态'
# )
# logger.info("系统定时任务:每日重置账号更新状态已添加")
# existing_job = None
# existing_job = self.scheduler.get_job("scheduled_get_max_nyid_by_point_id")
# if not existing_job:
# # 添加每天凌晨1点执行获取max NYID关联数据任务
# self.scheduler.add_job(
# scheduled_get_max_nyid_by_point_id,
# 'cron',
# id='scheduled_get_max_nyid_by_point_id',
# hour=1,
# minute=0,
# second=0,
# name='每日获取max NYID关联数据并创建DailyData记录'
# )
# logger.info("系统定时任务每日获取max NYID关联数据任务已添加")
except Exception as e:
logger.error(f"设置系统定时任务失败: {e}")
@@ -185,24 +186,24 @@ task_scheduler = TaskScheduler()
# 系统定时任务函数
def reset_today_updated_task():
"""每日重置账号today_updated字段为0的任务"""
db = SessionLocal()
try:
logger.info("开始执行每日重置账号更新状态任务")
# db = SessionLocal()
# try:
# logger.info("开始执行每日重置账号更新状态任务")
# 更新所有账号的today_updated字段为0
updated_need_count = db.query(Account).filter(Account.today_updated == 1).count()
updated_count = db.query(Account).update({Account.today_updated: 0})
db.commit()
# # 更新所有账号的today_updated字段为0
# updated_need_count = db.query(Account).filter(Account.today_updated == 1).count()
# updated_count = db.query(Account).update({Account.today_updated: 0})
# db.commit()
logger.info(f"每日重置任务完成,已重置 {updated_count} 个账号的today_updated字段")
return f"成功重置 {updated_count} 个账号的更新状态"
# logger.info(f"每日重置任务完成,已重置 {updated_count} 个账号的today_updated字段")
# return f"成功重置 {updated_count} 个账号的更新状态"
except Exception as e:
db.rollback()
logger.error(f"每日重置任务执行失败: {e}")
raise e
finally:
db.close()
# except Exception as e:
# db.rollback()
# logger.error(f"每日重置任务执行失败: {e}")
# raise e
# finally:
# db.close()
# 示例定时任务函数