Files
2026-07-13 12:31:34 +08:00

69 lines
1.8 KiB
Python

# -*- coding: utf-8 -*-
"""
async_task_model.py
"""
from __future__ import print_function, unicode_literals, absolute_import, division
from datetime import datetime
from peewee import IntegerField, DateTimeField, TextField, AutoField, BooleanField, CharField
from domain_admin.model.base_model import BaseModel
from domain_admin.utils import datetime_util
class AsyncTaskModel(BaseModel):
"""异步任务的执行情况记录"""
id = AutoField(primary_key=True)
# 用户id
user_id = IntegerField(null=False)
# 任务名称
task_name = TextField(default='', null=False)
# 函数名
function_name = CharField(default='', null=False)
# 执行状态: None 未执行; True 执行成功; False 执行失败
status = BooleanField(null=True, default=None)
# 入参
params = TextField(default='', null=False)
# 执行结果
result = TextField(default='', null=False)
# 开始时间
start_time = DateTimeField(null=True, default=None)
# 结束时间
end_time = DateTimeField(null=True, default=None)
# 创建时间
create_time = DateTimeField(default=datetime.now)
# 更新时间
update_time = DateTimeField(default=datetime.now)
class Meta:
table_name = 'log_async_task'
@property
def total_time(self):
if self.start_time and self.end_time:
return datetime_util.get_diff_time(self.start_time, self.end_time)
elif self.start_time:
return datetime_util.get_diff_time(self.start_time, datetime.now())
else:
return 0
@property
def total_time_label(self):
return datetime_util.seconds_for_human(self.total_time)
@property
def create_time_label(self):
return datetime_util.time_for_human(self.create_time)