后端:
1.阶段 5 task 服务边界落地
- 新增 cmd/task 与 services/task/{dao,rpc,sv},承载 task zrpc、tasks 表迁移和 task outbox 消费边界
- 新增 gateway/client/task、shared/contracts/task 和 task port,gateway /api/v1/task/* 切到 task zrpc client
- 将 task.urgency.promote.requested handler / relay / retry loop 迁入 cmd/task,单体 worker 不再消费 task outbox
- 保留单体 Agent 残留 task 查询的 publish-only 写入能力,避免迁移期 task 事件丢失
- active-scheduler task facts / due job scanner 切到 task RPC,并移除启动期 tasks 表依赖检查
- 更新阶段 5 文档,记录 task 切流点、旧实现保留、跨域 DB 依赖缩减和下一轮建议
- 补充 task rpc 示例配置
25 lines
1.1 KiB
Go
25 lines
1.1 KiB
Go
package ports
|
|
|
|
import (
|
|
"context"
|
|
"encoding/json"
|
|
|
|
taskcontracts "github.com/LoveLosita/smartflow/backend/shared/contracts/task"
|
|
)
|
|
|
|
// TaskCommandClient 是 gateway 调用 task 服务的最小能力集合。
|
|
//
|
|
// 职责边界:
|
|
// 1. 只覆盖当前 `/api/v1/task/*` HTTP 门面需要的能力;
|
|
// 2. 不暴露 task DAO、outbox 状态机或 active-scheduler due job 同步细节;
|
|
// 3. 复杂响应先以 JSON 透传,避免 gateway 复制 task 内部 DTO。
|
|
type TaskCommandClient interface {
|
|
AddTask(ctx context.Context, req taskcontracts.AddTaskRequest) (json.RawMessage, error)
|
|
GetUserTasks(ctx context.Context, userID int) (json.RawMessage, error)
|
|
BatchTaskStatus(ctx context.Context, req taskcontracts.BatchTaskStatusRequest) (json.RawMessage, error)
|
|
CompleteTask(ctx context.Context, req taskcontracts.CompleteTaskRequest) (json.RawMessage, error)
|
|
UndoCompleteTask(ctx context.Context, req taskcontracts.UndoCompleteTaskRequest) (json.RawMessage, error)
|
|
UpdateTask(ctx context.Context, req taskcontracts.UpdateTaskRequest) (json.RawMessage, error)
|
|
DeleteTask(ctx context.Context, req taskcontracts.DeleteTaskRequest) (json.RawMessage, error)
|
|
}
|