server.go 1006 B

12345678910111213141516171819202122232425262728293031323334353637383940414243
  1. package server
  2. import (
  3. "github.com/langgenius/dify-plugin-daemon/internal/cluster"
  4. "github.com/langgenius/dify-plugin-daemon/internal/core/persistence"
  5. "github.com/langgenius/dify-plugin-daemon/internal/core/plugin_manager"
  6. "github.com/langgenius/dify-plugin-daemon/internal/db"
  7. "github.com/langgenius/dify-plugin-daemon/internal/types/app"
  8. "github.com/langgenius/dify-plugin-daemon/internal/utils/routine"
  9. )
  10. func (app *App) Run(config *app.Config) {
  11. // init routine pool
  12. routine.InitPool(config.RoutinePoolSize)
  13. // init db
  14. db.Init(config)
  15. // create manager
  16. manager := plugin_manager.InitGlobalManager(config)
  17. // create cluster
  18. app.cluster = cluster.NewCluster(config, manager)
  19. // register plugin lifetime event
  20. manager.AddPluginRegisterHandler(app.cluster.RegisterPlugin)
  21. // init manager
  22. manager.Launch(config)
  23. // init persistence
  24. persistence.InitPersistence(config)
  25. // launch cluster
  26. app.cluster.Launch()
  27. // start http server
  28. app.server(config)
  29. // block
  30. select {}
  31. }