원클릭으로
new-async-task
Wavelet 项目专用:新增或修改 Asynq 异步任务、后台任务、定时任务、任务元数据、TaskHandler、TaskParam、PayloadValidator、AppendLog、任务重试、任务执行记录或 Admin 任务 API 时必须使用。
Codex 또는 Claude로 설치 이 Prompt를 복사해 Codex, Claude 또는 다른 어시스턴트에 붙여 넣으면 Skill 페이지를 검토하고 설치를 진행할 수 있습니다.
메뉴
Wavelet 项目专用:新增或修改 Asynq 异步任务、后台任务、定时任务、任务元数据、TaskHandler、TaskParam、PayloadValidator、AppendLog、任务重试、任务执行记录或 Admin 任务 API 时必须使用。
Codex 또는 Claude로 설치 이 Prompt를 복사해 Codex, Claude 또는 다른 어시스턴트에 붙여 넣으면 Skill 페이지를 검토하고 설치를 진행할 수 있습니다.
SOC 직업 분류 기준
Wavelet 项目专用:当新增或修改业务缓存(RAM/Redis/DB 三层读路径)、缓存失效、多节点 pub/sub 同步、或评估高频读是否应接入缓存时必须使用。本技能说明系统标准缓存框架、参考实现、禁止写法与分布式一致性要求。
Wavelet 项目专用:当新增或修改 ClickHouse 批量写入、接入 internal/db/batchwriter、将业务域异步 flush 到分析表、迁移 risk_control/节点访问日志/可观测时序写入、或评估 async_insert 与背压策略时必须使用。本技能指导分层职责、各域独立 Writer 实例、repository 批量 API 与禁止写法。
Wavelet 项目专用:当新增或修改数据库表结构、索引、初始化数据、系统配置 seed、模板 seed、默认管理员、goose SQL 迁移、internal/db/migrator、ClickHouse 分析库 DDL 或数据库升级流程时必须使用。本技能指导在 internal/db/migrator/goose 下编写 PostgreSQL/SQLite 双方言 SQL 迁移,以及在 goose/clickhouse 下编写 ClickHouse 单方言分析表迁移,并完成验证。
Provides comprehensive code review guidance for React 19, Vue 3, Angular 17+, Svelte 5, Rust, TypeScript, Java, PHP, Python, Django, Go, C#/.NET, Kotlin, Swift, NestJS, C/C++, and more. Helps catch bugs, improve code quality, and give constructive feedback. Use when: reviewing pull requests, conducting PR reviews, code review, reviewing code changes, establishing review standards, mentoring developers, architecture reviews, security audits, checking code quality, finding bugs, giving feedback on code.
Wavelet 项目专用:当业务需要上传文件、读取已上传文件、在 Worker/任务中程序化摄取字节流、选择存储引擎能力、或排查 w_uploads / 文件统计异常时必须使用。本技能指导 storage 与 upload 分层、upload.Ingest 策略选型、前后端接入与禁止旁路写表。
Use when reviewing Go code or checking code against community style standards. Also use proactively before submitting a Go PR or when reviewing any Go code changes, even if the user doesn't explicitly request a style review. Does not cover language-specific syntax — delegates to specialized skills.
| name | new-async-task |
| description | Wavelet 项目专用:新增或修改 Asynq 异步任务、后台任务、定时任务、任务元数据、TaskHandler、TaskParam、PayloadValidator、AppendLog、任务重试、任务执行记录或 Admin 任务 API 时必须使用。 |
开始前阅读根目录 AGENTS.md。只修改任务相关链路,遵守项目路由、日志、数据库迁移和质量门禁要求。
按任务范围检查当前实现:
internal/task/handler.go:TaskHandler、TaskResult、PayloadValidatorinternal/task/meta.go:TaskMeta、TaskParaminternal/task/executor.go:下发、执行、日志、重试、OnTaskCompleted 订阅internal/task/handlers/register.go:Handler 和元数据注册(由 bootstrap 调用)internal/bootstrap/bootstrap.go:任务注册与进程级装配入口internal/task/worker/worker.go:Worker 路由和队列internal/task/scheduler/scheduler.go:定时调度internal/apps/admin/task/routers.go:Admin 任务 APIinternal/model/task_execution.go:执行记录和日志持久化需要模板时阅读 references/CODE-EXAMPLES.md。
internal/apps/<module>/tasks.go 定义任务类型、Admin 任务类型和 TaskMeta。<module>:<action> 格式。Type、AsynqTask、Name、Description、MaxRetry、Queue、Retryable。TaskParam.Name 必须与 payload JSON tag 一致。TaskParam 只描述前端表单,不代替服务端校验。task.TaskHandler。task.PayloadValidator,负责校验和标准化 Admin 下发参数。Execute 必须再次解析 payload;不要假设入口一定经过 Admin 校验。&task.TaskResult{Message: ..., Detail: ...}。internal/model/ 或模块内的业务服务层(如 internal/apps/<module>/service.go 或 logics.go)。internal/task/handlers/register.go 同时注册 Handler 和 TaskMeta。routers.go 或 init() 中调用 task.RegisterHandler;统一由 bootstrap.RegisterTasks() → taskhandlers.Register() 在进程启动时装配。task.OnTaskCompleted 注册,在 bootstrap.RegisterTaskListeners() 中装配(Worker/all 进程)。| 进程 | 注册入口 |
|---|---|
api | cmd/api.go → bootstrap.RegisterAPI()(含 RegisterTasks) |
worker | worker.StartWorker() → bootstrap.RegisterWorker()(含 RegisterTasks + RegisterTaskListeners) |
scheduler | scheduler.StartScheduler() → bootstrap.RegisterScheduler() |
all | cmd/all.go → bootstrap.RegisterAll() |
所有 Register* 使用 sync.Once,重复调用安全。
internal/apps/admin/task/routers_test.go),必须在 setup 中显式调用 bootstrap.RegisterTasks()。init() 副作用或 import 链触发注册。TaskHandler.Execute 中使用 task.AppendLog(ctx, format, args...)。w_task_executions.log。日志框架约束:
pending、running、succeeded、failed。failedRetryable=trueRetryCount < MaxRetryinternal/task/executor.gointernal/model/task_execution.gointernal/apps/admin/task/routers.goschedules。database-migration skill。internal/apps/admin/<module>/。internal/router/router.go 注册。{ "error_msg": "", "data": ... }。{ "total": 0, "results": [] }。make swagger。frontend/lib/services/。shadcn skill。any。w-full,不添加页面级 max-w-*。