2
0
mirror of https://github.com/acepanel/panel.git synced 2026-02-04 14:57:16 +08:00

feat: 临时性手段阻止任务重复添加

This commit is contained in:
耗子
2024-06-24 23:28:35 +08:00
parent a75e36e447
commit 4432a12c7a

View File

@@ -113,6 +113,19 @@ func (r *PluginImpl) Install(slug string) error {
}
}
var count int64
if err = facades.Orm().Query().
Model(&models.Task{}).
Where("log LIKE ?", "%"+plugin.Slug+"%").
Where("status", models.TaskStatusWaiting).
OrWhere("status", models.TaskStatusRunning).
Count(&count); err != nil {
return errors.New("查询任务失败")
}
if count > 0 {
return errors.New("任务已添加,请勿重复添加")
}
var task models.Task
task.Name = "安装插件 " + plugin.Name
task.Status = models.TaskStatusWaiting
@@ -159,6 +172,19 @@ func (r *PluginImpl) Uninstall(slug string) error {
}
}
var count int64
if err = facades.Orm().Query().
Model(&models.Task{}).
Where("log LIKE ?", "%"+plugin.Slug+"%").
Where("status", models.TaskStatusWaiting).
OrWhere("status", models.TaskStatusRunning).
Count(&count); err != nil {
return errors.New("查询任务失败")
}
if count > 0 {
return errors.New("任务已添加,请勿重复添加")
}
var task models.Task
task.Name = "卸载插件 " + plugin.Name
task.Status = models.TaskStatusWaiting
@@ -205,6 +231,19 @@ func (r *PluginImpl) Update(slug string) error {
}
}
var count int64
if err = facades.Orm().Query().
Model(&models.Task{}).
Where("log LIKE ?", "%"+plugin.Slug+"%").
Where("status", models.TaskStatusWaiting).
OrWhere("status", models.TaskStatusRunning).
Count(&count); err != nil {
return errors.New("查询任务失败")
}
if count > 0 {
return errors.New("任务已添加,请勿重复添加")
}
var task models.Task
task.Name = "更新插件 " + plugin.Name
task.Status = models.TaskStatusWaiting