This commit is contained in:
27942
2026-03-01 14:02:32 +08:00
parent f2d362b40f
commit 83cd6e9440
3 changed files with 10 additions and 6 deletions

View File

@@ -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}: 派发失败")

View File

@@ -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)

View File

@@ -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: