Documentation
¶
Overview ¶
Package ability_task manages durable asynchronous task state: 受理(APIExecuter Async 一次性接入的唯一收口)、Worker 执行、重启恢复与任务查询。 状态三字段核心 run_status/process_status/progress,枚举与 model 列 comment、契约文档三处同步。
Index ¶
- Constants
- Variables
- func AcceptAsyncTask(ctx context.Context, methodName string, abilityParams interface{}) (interface{}, error)
- func ExecuteNextQueuedTask(ctx context.Context) (bool, error)
- func LoadAPIMethods()
- func RequeueOrphanedTasks(ctx context.Context) error
- func TaskCancel(ctx context.Context, input interface{}) (interface{}, error)
- func TaskGet(ctx context.Context, input interface{}) (interface{}, error)
- func TaskList(ctx context.Context, input interface{}) (interface{}, error)
- func UpdateProgress(ctx context.Context, taskID string, progress float64, message string) error
- type AsyncTaskInfo
Constants ¶
const ( RunStatusQueued = "queued" RunStatusRunning = "running" RunStatusDone = "done" )
程序级运行状态(与 model 列 comment、docs/ability_task.md 同步维护)。
const ( ProcessStatusSuccess = "success" ProcessStatusFailed = "failed" ProcessStatusCancelled = "cancelled" ProcessStatusSystemError = "system_error" )
业务级处理结局(空字符串 = 进行中;与 model 列 comment、docs/ability_task.md 同步维护)。
const ( MethodTaskGet = "task.get" MethodTaskList = "task.list" MethodTaskCancel = "task.cancel" )
Variables ¶
var ErrTaskNotActive = errors.New("task is not active")
Functions ¶
func AcceptAsyncTask ¶
func AcceptAsyncTask(ctx context.Context, methodName string, abilityParams interface{}) (interface{}, error)
AcceptAsyncTask 是 Async 方法的统一受理:写入持久化排队区并返回 task_id。 只由 APIExecuter 调用(AGENTS 预留的一次性接入);身份取门禁 context 快照,无身份任务属主为 NULL。
func ExecuteNextQueuedTask ¶
ExecuteNextQueuedTask 从持久化排队区原子认领一条任务并执行。 本方法是单次 Worker,由 Policy 按空闲名额异步调用;无排队任务时返回 false。
func LoadAPIMethods ¶
func LoadAPIMethods()
func RequeueOrphanedTasks ¶
RequeueOrphanedTasks 侦测未尽之事:把 DB 中 running 但不在本进程 in-flight 执行集合的孤儿任务 重置回 queued 拉起来继续。进程重启后第一轮侦测即捞回全部死进程遗留(此时 in-flight 为空); 运行中意外产生的孤儿同样每轮自愈。重跑兜底依赖异步 Execute 幂等(契约明记,责任归业务函数)。 由 policy 周期维护大循环调用。
func TaskCancel ¶
TaskCancel 取消我的排队中任务:queued 原子置 done+cancelled;running/done 或非属主统一拒绝。
Types ¶
type AsyncTaskInfo ¶
AsyncTaskInfo 是 Worker 注入业务 Execute context 的任务身份快照; 与门禁在线身份(AuthenticatedUser)语义分离:异步执行不要求受理时的 session 仍存活。
func AsyncTaskInfoFromContext ¶
func AsyncTaskInfoFromContext(ctx context.Context) (*AsyncTaskInfo, bool)
AsyncTaskInfoFromContext 供异步业务 Execute 读取当前任务身份快照。
Directories
¶
| Path | Synopsis |
|---|---|
|
Package ability_task_model stores durable asynchronous task records.
|
Package ability_task_model stores durable asynchronous task records. |