mirror of
https://github.com/hibiken/asynqmon.git
synced 2025-02-23 20:30:12 +08:00
Add API endpoints to delete scheduled, retry, and dead task
This commit is contained in:
parent
fa3e9ec761
commit
ef0ff2512b
44
main.go
44
main.go
@ -67,30 +67,26 @@ func main() {
|
|||||||
router := mux.NewRouter()
|
router := mux.NewRouter()
|
||||||
|
|
||||||
api := router.PathPrefix("/api").Subrouter()
|
api := router.PathPrefix("/api").Subrouter()
|
||||||
api.HandleFunc("/queues",
|
// Queue endpoints.
|
||||||
newListQueuesHandlerFunc(inspector)).Methods("GET")
|
api.HandleFunc("/queues", newListQueuesHandlerFunc(inspector)).Methods("GET")
|
||||||
api.HandleFunc("/queues/{qname}",
|
api.HandleFunc("/queues/{qname}", newGetQueueHandlerFunc(inspector)).Methods("GET")
|
||||||
newGetQueueHandlerFunc(inspector)).Methods("GET")
|
api.HandleFunc("/queues/{qname}", newDeleteQueueHandlerFunc(inspector)).Methods("DELETE")
|
||||||
api.HandleFunc("/queues/{qname}",
|
api.HandleFunc("/queues/{qname}/pause", newPauseQueueHandlerFunc(inspector)).Methods("POST")
|
||||||
newDeleteQueueHandlerFunc(inspector)).Methods("DELETE")
|
api.HandleFunc("/queues/{qname}/resume", newResumeQueueHandlerFunc(inspector)).Methods("POST")
|
||||||
api.HandleFunc("/queues/{qname}/pause",
|
|
||||||
newPauseQueueHandlerFunc(inspector)).Methods("POST")
|
// Task endpoints.
|
||||||
api.HandleFunc("/queues/{qname}/resume",
|
api.HandleFunc("/queues/{qname}/active_tasks", newListActiveTasksHandlerFunc(inspector)).Methods("GET")
|
||||||
newResumeQueueHandlerFunc(inspector)).Methods("POST")
|
api.HandleFunc("/queues/{qname}/active_tasks/{task_id}/cancel", newCancelActiveTaskHandlerFunc(inspector)).Methods("POST")
|
||||||
api.HandleFunc("/queues/{qname}/active_tasks",
|
api.HandleFunc("/queues/{qname}/pending_tasks", newListPendingTasksHandlerFunc(inspector)).Methods("GET")
|
||||||
newListActiveTasksHandlerFunc(inspector)).Methods("GET")
|
api.HandleFunc("/queues/{qname}/scheduled_tasks", newListScheduledTasksHandlerFunc(inspector)).Methods("GET")
|
||||||
api.HandleFunc("/queues/{qname}/active_tasks/{task_id}/cancel",
|
api.HandleFunc("/queues/{qname}/scheduled_tasks/{task_key}", newDeleteTaskHandlerFunc(inspector)).Methods("DELETE")
|
||||||
newCancelActiveTaskHandlerFunc(inspector)).Methods("POST")
|
api.HandleFunc("/queues/{qname}/retry_tasks", newListRetryTasksHandlerFunc(inspector)).Methods("GET")
|
||||||
api.HandleFunc("/queues/{qname}/pending_tasks",
|
api.HandleFunc("/queues/{qname}/retry_tasks/{task_key}", newDeleteTaskHandlerFunc(inspector)).Methods("DELETE")
|
||||||
newListPendingTasksHandlerFunc(inspector)).Methods("GET")
|
api.HandleFunc("/queues/{qname}/dead_tasks", newListDeadTasksHandlerFunc(inspector)).Methods("GET")
|
||||||
api.HandleFunc("/queues/{qname}/scheduled_tasks",
|
api.HandleFunc("/queues/{qname}/dead_tasks/{task_key}", newDeleteTaskHandlerFunc(inspector)).Methods("DELETE")
|
||||||
newListScheduledTasksHandlerFunc(inspector)).Methods("GET")
|
|
||||||
api.HandleFunc("/queues/{qname}/retry_tasks",
|
// Scheduler Entry endpoints.
|
||||||
newListRetryTasksHandlerFunc(inspector)).Methods("GET")
|
api.HandleFunc("/scheduler_entries", newListSchedulerEntriesHandlerFunc(inspector)).Methods("GET")
|
||||||
api.HandleFunc("/queues/{qname}/dead_tasks",
|
|
||||||
newListDeadTasksHandlerFunc(inspector)).Methods("GET")
|
|
||||||
api.HandleFunc("/scheduler_entries",
|
|
||||||
newListSchedulerEntriesHandlerFunc(inspector)).Methods("GET")
|
|
||||||
|
|
||||||
fs := &staticFileServer{staticPath: "ui/build", indexPath: "index.html"}
|
fs := &staticFileServer{staticPath: "ui/build", indexPath: "index.html"}
|
||||||
router.PathPrefix("/").Handler(fs)
|
router.PathPrefix("/").Handler(fs)
|
||||||
|
@ -165,6 +165,19 @@ func newListDeadTasksHandlerFunc(inspector *asynq.Inspector) http.HandlerFunc {
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
func newDeleteTaskHandlerFunc(inspector *asynq.Inspector) http.HandlerFunc {
|
||||||
|
return func(w http.ResponseWriter, r *http.Request) {
|
||||||
|
vars := mux.Vars(r)
|
||||||
|
qname, key := vars["qname"], vars["task_key"]
|
||||||
|
if err := inspector.DeleteTaskByKey(qname, key); err != nil {
|
||||||
|
// TODO: Handle task not found error and return 404
|
||||||
|
http.Error(w, err.Error(), http.StatusInternalServerError)
|
||||||
|
return
|
||||||
|
}
|
||||||
|
w.WriteHeader(http.StatusNoContent)
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
// getPageOptions read page size and number from the request url if set,
|
// getPageOptions read page size and number from the request url if set,
|
||||||
// otherwise it returns the default value.
|
// otherwise it returns the default value.
|
||||||
func getPageOptions(r *http.Request) (pageSize, pageNum int) {
|
func getPageOptions(r *http.Request) (pageSize, pageNum int) {
|
||||||
|
Loading…
x
Reference in New Issue
Block a user