节点任务查询时增加排除的任务类型

This commit is contained in:
GoEdgeLab
2021-11-27 17:07:01 +08:00
parent d4c9bd524a
commit de63ae8911
2 changed files with 20 additions and 10 deletions

View File

@@ -311,20 +311,30 @@ func (this *NodeTaskDAO) FindAllDoingNodeIds(tx *dbs.Tx, role string) ([]int64,
}
// ExistsDoingNodeTasks 检查是否有正在执行的任务
func (this *NodeTaskDAO) ExistsDoingNodeTasks(tx *dbs.Tx, role string) (bool, error) {
return this.Query(tx).
func (this *NodeTaskDAO) ExistsDoingNodeTasks(tx *dbs.Tx, role string, excludeTypes []NodeTaskType) (bool, error) {
var query = this.Query(tx).
Attr("role", role).
Where("(isDone=0 OR (isDone=1 AND isOk=0))").
Gt("nodeId", 0).
Exist()
Gt("nodeId", 0)
if len(excludeTypes) > 0 {
for _, excludeType := range excludeTypes {
query.Neq("type", excludeType)
}
}
return query.Exist()
}
// ExistsErrorNodeTasks 是否有错误的任务
func (this *NodeTaskDAO) ExistsErrorNodeTasks(tx *dbs.Tx, role string) (bool, error) {
return this.Query(tx).
func (this *NodeTaskDAO) ExistsErrorNodeTasks(tx *dbs.Tx, role string, excludeTypes []NodeTaskType) (bool, error) {
var query = this.Query(tx).
Attr("role", role).
Where("(isDone=1 AND isOk=0)").
Exist()
Where("(isDone=1 AND isOk=0)")
if len(excludeTypes) > 0 {
for _, excludeType := range excludeTypes {
query.Neq("type", excludeType)
}
}
return query.Exist()
}
// DeleteNodeTask 删除任务

View File

@@ -163,13 +163,13 @@ func (this *NodeTaskService) ExistsNodeTasks(ctx context.Context, req *pb.Exists
var tx = this.NullTx()
// 是否有任务
existTask, err := models.SharedNodeTaskDAO.ExistsDoingNodeTasks(tx, nodeconfigs.NodeRoleNode)
existTask, err := models.SharedNodeTaskDAO.ExistsDoingNodeTasks(tx, nodeconfigs.NodeRoleNode, req.ExcludeTypes)
if err != nil {
return nil, err
}
// 是否有错误
existError, err := models.SharedNodeTaskDAO.ExistsErrorNodeTasks(tx, nodeconfigs.NodeRoleNode)
existError, err := models.SharedNodeTaskDAO.ExistsErrorNodeTasks(tx, nodeconfigs.NodeRoleNode, req.ExcludeTypes)
if err != nil {
return nil, err
}