This commit is contained in:
27942
2026-03-03 02:13:33 +08:00
parent 5526f2d048
commit 3788197358
4 changed files with 270 additions and 151 deletions

View File

@@ -62,6 +62,34 @@ class TaskLog(models.Model):
return f"{self.task_id} ({self.task_type})"
class Task(models.Model):
"""
任务表(数据库为唯一真相)。
- 所有任务的生命周期状态均保存在此表中;
- 内存中不再长期保存任务状态,只作为必要的临时变量。
"""
task_id = models.CharField(max_length=32, unique=True, verbose_name="任务 ID")
task_type = models.CharField(max_length=64, verbose_name="任务类型")
worker_id = models.CharField(max_length=64, default="", verbose_name="执行的 Worker")
account_name = models.CharField(max_length=128, default="", blank=True, verbose_name="账号(环境名称)")
status = models.CharField(max_length=32, default="", verbose_name="当前状态")
params = models.JSONField(null=True, blank=True, verbose_name="任务参数")
progress = models.TextField(null=True, blank=True, verbose_name="进度信息")
result = models.JSONField(null=True, blank=True, verbose_name="任务结果")
error = models.TextField(null=True, blank=True, verbose_name="错误信息")
created_at = models.DateTimeField(auto_now_add=True, verbose_name="创建时间")
updated_at = models.DateTimeField(auto_now=True, verbose_name="更新时间")
class Meta:
db_table = "task"
verbose_name = "任务"
verbose_name_plural = verbose_name
def __str__(self):
return f"{self.task_id} ({self.task_type})"
class AuthToken(models.Model):
"""登录 token 表:每个用户名仅保留当前有效 token。"""
username = models.CharField(max_length=64, unique=True, verbose_name="用户名")