github.com/songzhibin97/gkit@v1.2.13/distributed/backend/backend.go (about)

     1  package backend
     2  
     3  import "github.com/songzhibin97/gkit/distributed/task"
     4  
     5  type Backend interface {
     6  	// GroupTakeOver 组接管任务详情
     7  	GroupTakeOver(groupID string, name string, taskIDs ...string) error
     8  
     9  	// GroupCompleted 组任务是否完成
    10  	GroupCompleted(groupID string) (bool, error)
    11  
    12  	// GroupTaskStatus 组任务状态
    13  	GroupTaskStatus(groupID string) ([]*task.Status, error)
    14  
    15  	// TriggerCompleted 任务全部完成后更改标记位
    16  	// TriggerCompleted 是并发安全的,保证只能成功更改一次
    17  	TriggerCompleted(groupID string) (bool, error)
    18  
    19  	// 设置任务状态
    20  
    21  	// SetStatePending 设置任务状态为等待
    22  	SetStatePending(signature *task.Signature) error
    23  
    24  	// SetStateReceived 设置任务状态为接受
    25  	SetStateReceived(signature *task.Signature) error
    26  
    27  	// SetStateStarted 设置任务状态为开始
    28  	SetStateStarted(signature *task.Signature) error
    29  
    30  	// SetStateRetry 设置任务状态为重试
    31  	SetStateRetry(signature *task.Signature) error
    32  
    33  	// SetStateSuccess 设置任务状态为成功
    34  	SetStateSuccess(signature *task.Signature, results []*task.Result) error
    35  
    36  	// SetStateFailure 设置任务状态为失败
    37  	SetStateFailure(signature *task.Signature, err string) error
    38  
    39  	// GetStatus 获取任务状态
    40  	GetStatus(taskID string) (*task.Status, error)
    41  
    42  	// ResetTask 重置任务状态
    43  	ResetTask(taskIDs ...string) error
    44  
    45  	// ResetGroup 重置组信息
    46  	ResetGroup(groupIDs ...string) error
    47  
    48  	// SetResultExpire 设置过期时间
    49  	// 在使用controller中接管时候统一设置
    50  	SetResultExpire(expire int64)
    51  }