From 0489bfb10d2761e40b68c93b84c7bf0534fd6515 Mon Sep 17 00:00:00 2001 From: liuwei Date: Thu, 12 Jun 2025 09:59:21 +0800 Subject: [PATCH] =?UTF-8?q?=E5=AE=9A=E6=97=B6=E4=BB=BB=E5=8A=A1=EF=BC=8C?= =?UTF-8?q?=E5=91=A8=E8=AE=A1=E7=AE=97=E8=B0=83=E6=95=B4=E3=80=82?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- plugins/message_push_task/main.py | 37 +++++++++++++++++-------------- 1 file changed, 20 insertions(+), 17 deletions(-) diff --git a/plugins/message_push_task/main.py b/plugins/message_push_task/main.py index d13d241..21fc7e4 100644 --- a/plugins/message_push_task/main.py +++ b/plugins/message_push_task/main.py @@ -277,18 +277,8 @@ class MessagePushTask(MessagePluginInterface): else: status = 'failed' - self.db.update_task(task['task_id'], {'status': status}) - - # 记录任务完成 - self.db.log_task_action({ - 'log_id': f"log_{datetime.now().strftime('%Y%m%d%H%M%S')}", - 'task_id': task['task_id'], - 'action': 'update', - 'user_id': task['creator_id'], - 'changes': {'status': status} - }) - - # 如果是重复任务且未超过结束时间,更新下次执行时间 + # 如果是重复任务且未超过结束时间,先计算下次执行时间 + next_time = None if task['schedule_type'] == 'recurring' and status != 'completed': next_time = self._calculate_next_schedule_time( task['schedule_time'], @@ -299,12 +289,25 @@ class MessagePushTask(MessagePluginInterface): task['monthly_day'] ) if next_time: - self.db.update_task(task['task_id'], { - 'schedule_time': next_time, - 'status': 'scheduled' - }) + self.LOG.info(f"计算任务 {task['task_id']} 的下次执行时间为: {next_time}") - self.LOG.info(f"定时任务 {task['task_id']} 处理完成,状态: {status}") + # 更新任务状态和下次执行时间 + update_data = {'status': status} + if next_time: + update_data['schedule_time'] = next_time + + self.db.update_task(task['task_id'], update_data) + + # 记录任务完成 + self.db.log_task_action({ + 'log_id': f"log_{datetime.now().strftime('%Y%m%d%H%M%S')}", + 'task_id': task['task_id'], + 'action': 'update', + 'user_id': task['creator_id'], + 'changes': update_data + }) + + self.LOG.info(f"定时任务 {task['task_id']} 处理完成,状态: {status}, 下次执行时间: {next_time}") except Exception as e: self.LOG.error(f"处理定时任务 {task['task_id']} 失败: {e}")