mirror of
https://github.com/usual2970/certimate.git
synced 2025-06-08 05:29:51 +00:00
handle exit logic
This commit is contained in:
parent
ebffac7ba4
commit
db10ed8378
@ -94,16 +94,16 @@ func (w *WorkflowRepository) SaveRun(ctx context.Context, run *domain.WorkflowRu
|
|||||||
}
|
}
|
||||||
|
|
||||||
// unable trigger sse using DB()
|
// unable trigger sse using DB()
|
||||||
wordflowRecord, err := txDao.FindRecordById("workflow", run.WorkflowId)
|
workflowRecord, err := txDao.FindRecordById("workflow", run.WorkflowId)
|
||||||
if err != nil {
|
if err != nil {
|
||||||
return err
|
return err
|
||||||
}
|
}
|
||||||
|
|
||||||
wordflowRecord.Set("lastRunId", record.GetId())
|
workflowRecord.Set("lastRunId", record.GetId())
|
||||||
wordflowRecord.Set("lastRunStatus", record.GetString("status"))
|
workflowRecord.Set("lastRunStatus", record.GetString("status"))
|
||||||
wordflowRecord.Set("lastRunTime", record.GetString("startedAt"))
|
workflowRecord.Set("lastRunTime", record.GetString("startedAt"))
|
||||||
|
|
||||||
return txDao.SaveRecord(wordflowRecord)
|
return txDao.SaveRecord(workflowRecord)
|
||||||
})
|
})
|
||||||
if err != nil {
|
if err != nil {
|
||||||
return err
|
return err
|
||||||
|
@ -10,6 +10,7 @@ import (
|
|||||||
|
|
||||||
type WorkflowService interface {
|
type WorkflowService interface {
|
||||||
Run(ctx context.Context, req *domain.WorkflowRunReq) error
|
Run(ctx context.Context, req *domain.WorkflowRunReq) error
|
||||||
|
Stop()
|
||||||
}
|
}
|
||||||
|
|
||||||
type workflowHandler struct {
|
type workflowHandler struct {
|
||||||
|
@ -1,6 +1,8 @@
|
|||||||
package routes
|
package routes
|
||||||
|
|
||||||
import (
|
import (
|
||||||
|
"sync"
|
||||||
|
|
||||||
"github.com/usual2970/certimate/internal/notify"
|
"github.com/usual2970/certimate/internal/notify"
|
||||||
"github.com/usual2970/certimate/internal/repository"
|
"github.com/usual2970/certimate/internal/repository"
|
||||||
"github.com/usual2970/certimate/internal/rest"
|
"github.com/usual2970/certimate/internal/rest"
|
||||||
@ -11,14 +13,26 @@ import (
|
|||||||
"github.com/pocketbase/pocketbase/apis"
|
"github.com/pocketbase/pocketbase/apis"
|
||||||
)
|
)
|
||||||
|
|
||||||
|
var (
|
||||||
|
workflowSvc rest.WorkflowService
|
||||||
|
workflowSvcOnce sync.Once
|
||||||
|
)
|
||||||
|
|
||||||
|
func getWorkflowService() rest.WorkflowService {
|
||||||
|
workflowSvcOnce.Do(func() {
|
||||||
|
workflowRepo := repository.NewWorkflowRepository()
|
||||||
|
workflowSvc = workflow.NewWorkflowService(workflowRepo)
|
||||||
|
})
|
||||||
|
return workflowSvc
|
||||||
|
}
|
||||||
|
|
||||||
func Register(e *echo.Echo) {
|
func Register(e *echo.Echo) {
|
||||||
group := e.Group("/api", apis.RequireAdminAuth())
|
group := e.Group("/api", apis.RequireAdminAuth())
|
||||||
|
|
||||||
notifyRepo := repository.NewSettingsRepository()
|
notifyRepo := repository.NewSettingsRepository()
|
||||||
notifySvc := notify.NewNotifyService(notifyRepo)
|
notifySvc := notify.NewNotifyService(notifyRepo)
|
||||||
|
|
||||||
workflowRepo := repository.NewWorkflowRepository()
|
workflowSvc := getWorkflowService()
|
||||||
workflowSvc := workflow.NewWorkflowService(workflowRepo)
|
|
||||||
|
|
||||||
statisticsRepo := repository.NewStatisticsRepository()
|
statisticsRepo := repository.NewStatisticsRepository()
|
||||||
statisticsSvc := statistics.NewStatisticsService(statisticsRepo)
|
statisticsSvc := statistics.NewStatisticsService(statisticsRepo)
|
||||||
@ -29,3 +43,7 @@ func Register(e *echo.Echo) {
|
|||||||
|
|
||||||
rest.NewStatisticsHandler(group, statisticsSvc)
|
rest.NewStatisticsHandler(group, statisticsSvc)
|
||||||
}
|
}
|
||||||
|
|
||||||
|
func Unregister() {
|
||||||
|
getWorkflowService().Stop()
|
||||||
|
}
|
||||||
|
7
main.go
7
main.go
@ -55,7 +55,12 @@ func main() {
|
|||||||
return nil
|
return nil
|
||||||
})
|
})
|
||||||
|
|
||||||
defer log.Println("Exit!")
|
app.OnTerminate().Add(func(e *core.TerminateEvent) error {
|
||||||
|
routes.Unregister()
|
||||||
|
log.Println("Exit!")
|
||||||
|
return nil
|
||||||
|
})
|
||||||
|
|
||||||
log.Printf("Visit the website: http://%s", httpFlag)
|
log.Printf("Visit the website: http://%s", httpFlag)
|
||||||
|
|
||||||
if err := app.Start(); err != nil {
|
if err := app.Start(); err != nil {
|
||||||
|
Loading…
x
Reference in New Issue
Block a user