server.go 1.1 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647
  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/process"
  8. "github.com/langgenius/dify-plugin-daemon/internal/types/app"
  9. "github.com/langgenius/dify-plugin-daemon/internal/utils/routine"
  10. )
  11. func (app *App) Run(config *app.Config) {
  12. // init routine pool
  13. routine.InitPool(config.RoutinePoolSize)
  14. // init db
  15. db.Init(config)
  16. // init process lifetime
  17. process.Init(config)
  18. // create manager
  19. manager := plugin_manager.InitGlobalManager(config)
  20. // create cluster
  21. app.cluster = cluster.NewCluster(config, manager)
  22. // register plugin lifetime event
  23. manager.AddPluginRegisterHandler(app.cluster.RegisterPlugin)
  24. // init manager
  25. manager.Launch(config)
  26. // init persistence
  27. persistence.InitPersistence(config)
  28. // launch cluster
  29. app.cluster.Launch()
  30. // start http server
  31. app.server(config)
  32. // block
  33. select {}
  34. }