自动任务按推理、量化因子、微调轮流生成并派发。

Co-authored-by: Cursor <cursoragent@cursor.com>
This commit is contained in:
dekun
2026-10-11 09:15:36 +08:00
parent 29551a260a
commit 8f562d00a0
4 changed files with 198 additions and 51 deletions
+3 -3
View File
@@ -24,7 +24,7 @@ from app.clock import utcnow
from app.config import settings
from app.errors import AppError
from app.models import ComputeNode, ComputeTask, NodeStatus, PushStatus, TaskStatus
from app.services.alpha_queue import ingest_alpha_factors
from app.services.alpha_queue import AUTO_CYCLE, ingest_alpha_factors
from app.services.common import get_node_by_sn
logger = logging.getLogger(__name__)
@@ -126,13 +126,13 @@ def dispatch_random_tasks(session: Session, now: datetime | None = None) -> list
"""向当前在线、授权仍有效、且没有未完成任务的节点随机下发一轮任务。"""
moment = now or utcnow()
expire_overdue_tasks(session, moment)
# 未绑定的挖掘切片不算占用节点。已派发的挖掘任务单独排队,不挡住模拟任务。
# 未绑定的自动切片不算占用节点。推理、因子和微调单独排队,不挡住模拟任务。
pending_node_ids = set(
session.scalars(
select(ComputeTask.node_id).where(
ComputeTask.node_id.is_not(None),
ComputeTask.status.in_(_BUSY),
ComputeTask.task_type != "alpha_mining",
ComputeTask.task_type.notin_(AUTO_CYCLE),
)
).all()
)