mirror of
https://github.com/acepanel/panel.git
synced 2026-02-04 14:57:16 +08:00
feat: 临时性手段阻止任务重复添加
This commit is contained in:
@@ -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
|
||||
|
||||
Reference in New Issue
Block a user