feat: expose result subscription HTTP and WebSocket APIs
This commit is contained in:
@@ -15,6 +15,7 @@ import (
|
||||
"git.yuntuo.hk/k2safe/orbit/internal/storage/mysql"
|
||||
"git.yuntuo.hk/k2safe/orbit/internal/transport/httpserver"
|
||||
core "git.yuntuo.hk/k2safe/orbit/model"
|
||||
"git.yuntuo.hk/k2safe/orbit/platform/events"
|
||||
"git.yuntuo.hk/k2safe/orbit/platform/resources"
|
||||
"git.yuntuo.hk/k2safe/orbit/pulse/schedule"
|
||||
"git.yuntuo.hk/k2safe/orbit/pulse/service"
|
||||
@@ -64,6 +65,15 @@ func run() error {
|
||||
}
|
||||
hub := httpserver.NewWorkerHub(root, worker.New(executions))
|
||||
httpserver.RegisterWorkers(server, hub)
|
||||
eventService := events.New(mysql.NewEventStore(db))
|
||||
eventHub := httpserver.NewEventHub(root, eventService)
|
||||
httpserver.RegisterEventSubscriptions(server, eventService)
|
||||
httpserver.RegisterEventConsumers(server, eventHub)
|
||||
defer func() {
|
||||
ctx, cancel := context.WithTimeout(context.Background(), 5*time.Second)
|
||||
defer cancel()
|
||||
_ = eventHub.Shutdown(ctx)
|
||||
}()
|
||||
schedules, err := mysql.NewScheduleStore(db, node)
|
||||
if err != nil {
|
||||
return err
|
||||
@@ -122,7 +132,7 @@ func run() error {
|
||||
}
|
||||
done := make(chan error, 1)
|
||||
go func() { done <- server.Serve(listener) }()
|
||||
slog.Info("Orbit HTTP server starting", "address", listener.Addr().String(), "scope", "health, task, queue, schedule and Worker APIs", "node_id", node)
|
||||
slog.Info("Orbit HTTP server starting", "address", listener.Addr().String(), "scope", "health, task, queue, schedule, subscription and Worker APIs", "node_id", node)
|
||||
select {
|
||||
case err := <-done:
|
||||
if errors.Is(err, http.ErrServerClosed) {
|
||||
|
||||
Reference in New Issue
Block a user