Open flycash opened 1 week ago
task 接口是给用户用的,他们提供实现
Mutex 里面注册 POST,GET 和 DELETE 三个路由。不能使用 GIN 之类的接口。
在根目录下新建一个 client 的包,项目结构是: ecron/client/http
大体上是不是这样子? ` // 我的实现 type Registry struct { tasks []Task }
func (s *Registry) Register(t Task) { s.tasks = append(s.tasks, t) }
type Client struct { Registry prefix string }
func (c Client) HttpMutex() http.Handler { handler := http.NewServeMux() handler.HandleFunc("/$prefix/$TaskName", func(w http.ResponseWriter, r http.Request) { // Post => t.Execute() // GET => t.Status() // DELETE => Stop() }) return handler }
// 用户使用 r:=new(Registry) r.Register(t) client:=NewHttpClient(r) mutex:=client.HttpMutex() http.ListenAndServe(":8080", mutex) `
对
在我们的设计里面,调度节点可以通过 HTTP 调用触发任务。那么如果我们要求用户自己手写 HTTP 接口也是可以的。但是很多用户可能会比较不耐烦,所以我们进一步提供客户端。
这个客户端提供以下接口:
你需要提供的基本实现是: