diff --git a/server/api/accounts.py b/server/api/accounts.py index 2f364ac..f8432bf 100644 --- a/server/api/accounts.py +++ b/server/api/accounts.py @@ -75,9 +75,9 @@ def account_list(request): if async_to_sync(task_dispatcher.dispatch)(task, send_fn): worker_manager.set_current_task(wid, task.task_id) account.current_task_id = task.task_id - account.current_task_status = task.status.value + account.current_task_status = TaskStatus.DISPATCHED.value account.save(update_fields=["current_task_id", "current_task_status"]) - logger.info("绑定账号后自动触发 check_login: %s@%s", bname, wid) + logger.info("绑定账号后自动触发 check_login: %s@%s, task_id=%s", bname, wid, task.task_id) return api_success(_enrich(account), http_status=status.HTTP_201_CREATED) @@ -116,9 +116,10 @@ def fill_boss_ids(request): if success: worker_manager.set_current_task(wid, task.task_id) acc.current_task_id = task.task_id - acc.current_task_status = task.status.value + acc.current_task_status = TaskStatus.DISPATCHED.value acc.save(update_fields=["current_task_id", "current_task_status"]) submitted += 1 + logger.info("账号检查登录: %s@%s, task_id=%s", bname, wid, task.task_id) else: skipped += 1 errors.append(f"{bname}@{wid}: 派发失败") diff --git a/server/api/tasks.py b/server/api/tasks.py index c6e406b..f8921a4 100644 --- a/server/api/tasks.py +++ b/server/api/tasks.py @@ -135,8 +135,10 @@ def task_list(request): ).first() if account: account.current_task_id = task.task_id - account.current_task_status = task.status.value + # 派发成功后,将状态设为 DISPATCHED(不是 task.status.value,因为那可能还是 PENDING) + account.current_task_status = TaskStatus.DISPATCHED.value account.save(update_fields=["current_task_id", "current_task_status"]) + logger.info("账号 %s 任务关联: task_id=%s, status=%s", req.account_name, task.task_id, account.current_task_status) except Exception as e: logger.warning("关联账号任务状态失败: %s", e) diff --git a/server/ws/consumers.py b/server/ws/consumers.py index 86a7095..7eefdd4 100644 --- a/server/ws/consumers.py +++ b/server/ws/consumers.py @@ -106,8 +106,8 @@ class WorkerConsumer(AsyncWebsocketConsumer): # 同步更新账号任务状态为 running try: self._update_account_task_status(task_id, TaskStatus.RUNNING.value) - except Exception: - pass + except Exception as e: + logger.error("更新账号任务状态失败 (task_id=%s): %s", task_id, e) elif msg_type == MsgType.TASK_RESULT.value: task_id = data.get("task_id", "") @@ -124,6 +124,7 @@ class WorkerConsumer(AsyncWebsocketConsumer): final_status = task_info.status.value if hasattr(task_info.status, "value") else str(task_info.status) self._save_task_log(task_id, task_info, result, error, final_status) self._update_account_task_status(task_id, final_status) + logger.info("任务 %s 最终状态已更新: %s", task_id, final_status) # check_login 任务:更新账号登录状态 task_type_val = task_info.task_type.value if hasattr(task_info.task_type, "value") else str(task_info.task_type) if task_type_val == TaskType.CHECK_LOGIN.value and result and not error: