diff --git a/abstract.go b/abstract.go new file mode 100644 index 0000000..95aae7b --- /dev/null +++ b/abstract.go @@ -0,0 +1,26 @@ +// Package task ... +// +// Description : 定义任务接口约束 +// +// Author : go_developer@163.com<白茶清欢> +// +// Date : 2022-06-23 14:20 +package task + +import "context" + +// ITask 任务接口约束 +// +// Author : go_developer@163.com<白茶清欢> +// +// Date : 14:22 2022/6/23 +type ITask interface { + // Name 任务名称标识, 全局唯一 + Name() string + // Description 任务描述 + Description() string + // Callback 任务执行的回调 + Callback(result *Result) error + // Execute 执行任务 + Execute(ctx context.Context, cfg *Config, taskParam map[string]interface{}) (map[string]interface{}, error) +} diff --git a/define.go b/define.go new file mode 100644 index 0000000..10c9a78 --- /dev/null +++ b/define.go @@ -0,0 +1,38 @@ +// Package task ... +// +// Description : 定义任务配置 +// +// Author : go_developer@163.com<白茶清欢> +// +// Date : 2022-06-23 14:26 +package task + +// Config 任务配置 +// +// Author : go_developer@163.com<白茶清欢> +// +// Date : 14:26 2022/6/23 +type Config struct { + // GetRunID 获取任务运行的ID + GetRunID func() string + // Async 是否异步运行 + Async bool + // Timeout 单位 : 秒, <= 0认为不设置超时 + Timeout int + // ForbiddenCallback 禁用执行结果回调 + ForbiddenCallback bool +} + +// Result 执行结果 +// +// Author : go_developer@163.com<白茶清欢> +// +// Date : 14:43 2022/6/23 +type Result struct { + StartTime int64 // 开始时间, 纳秒 + FinishTime int64 // 结束时间, 纳秒 + Used int64 // 耗时, 纳秒 + Param map[string]interface{} // 任务参数 + Data map[string]interface{} // 任务结果数据 + Err error // 异常信息, err == nil , 代表执行成功 +}