Files
autoAiWorkSys/api/model/task_commands.js
张成 5d7444cd65 1
2025-11-24 13:23:42 +08:00

126 lines
3.3 KiB
JavaScript

const dayjs = require("dayjs");
const Sequelize = require('sequelize');
module.exports = (db) => {
const task_commands = db.define("task_commands", {
task_id: {
comment: '任务ID',
type: Sequelize.INTEGER,
allowNull: true,
defaultValue: null
// 不添加外键关联,避免数据库层面的约束
},
command_type: {
comment: '指令类型',
type: Sequelize.STRING(50),
allowNull: false,
defaultValue: ''
},
command_name: {
comment: '指令名称',
type: Sequelize.STRING(100),
allowNull: false,
defaultValue: ''
},
command_params: {
comment: '指令参数',
type: Sequelize.TEXT,
allowNull: true,
defaultValue: null
},
status: {
comment: '指令状态',
type: Sequelize.ENUM('pending', 'running', 'completed', 'failed', 'cancelled'),
allowNull: false,
defaultValue: 'pending'
},
priority: {
comment: '优先级',
type: Sequelize.INTEGER,
allowNull: false,
defaultValue: 1
},
sequence: {
comment: '执行顺序',
type: Sequelize.INTEGER,
allowNull: false,
defaultValue: 1
},
retry_count: {
comment: '重试次数',
type: Sequelize.INTEGER,
allowNull: false,
defaultValue: 0
},
max_retries: {
comment: '最大重试次数',
type: Sequelize.INTEGER,
allowNull: false,
defaultValue: 3
},
start_time: {
comment: '开始时间',
type: Sequelize.DATE,
allowNull: true,
defaultValue: null
},
end_time: {
comment: '结束时间',
type: Sequelize.DATE,
allowNull: true,
defaultValue: null
},
duration: {
comment: '执行时长(毫秒)',
type: Sequelize.INTEGER,
allowNull: true,
defaultValue: null
},
result: {
comment: '执行结果',
type: Sequelize.TEXT,
allowNull: true,
defaultValue: null
},
error_message: {
comment: '错误信息',
type: Sequelize.TEXT,
allowNull: true,
defaultValue: null
},
error_stack: {
comment: '错误堆栈',
type: Sequelize.TEXT,
allowNull: true,
defaultValue: null
},
progress: {
comment: '执行进度(0-100)',
type: Sequelize.INTEGER,
allowNull: false,
defaultValue: 0
},
}, {
tableName: 'task_commands',
indexes: [
{
fields: ['task_id']
},
{
fields: ['status']
},
{
fields: ['command_type']
},
{
fields: ['priority', 'sequence']
},
]
});
// task_commands.sync({ force: true });
return task_commands;
};