You can not select more than 25 topics Topics must start with a chinese character,a letter or number, can include dashes ('-') and can be up to 35 characters long.

main.go 1.7 kB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778
  1. package main
  2. import (
  3. "fmt"
  4. "os"
  5. "sync"
  6. log "gitlink.org.cn/cloudream/common/utils/logger"
  7. "gitlink.org.cn/cloudream/db"
  8. scsvr "gitlink.org.cn/cloudream/rabbitmq/server/scanner"
  9. "gitlink.org.cn/cloudream/scanner/internal/config"
  10. "gitlink.org.cn/cloudream/scanner/internal/event"
  11. "gitlink.org.cn/cloudream/scanner/internal/services"
  12. )
  13. func main() {
  14. err := config.Init()
  15. if err != nil {
  16. fmt.Printf("init config failed, err: %s", err.Error())
  17. os.Exit(1)
  18. }
  19. err = log.Init(&config.Cfg().Logger)
  20. if err != nil {
  21. fmt.Printf("init logger failed, err: %s", err.Error())
  22. os.Exit(1)
  23. }
  24. db, err := db.NewDB(&config.Cfg().DB)
  25. if err != nil {
  26. log.Fatalf("new db failed, err: %s", err.Error())
  27. }
  28. wg := sync.WaitGroup{}
  29. wg.Add(2)
  30. eventExecutor := event.NewExecutor(db)
  31. go serveEventExecutor(&eventExecutor, &wg)
  32. agtSvr, err := scsvr.NewScannerServer(services.NewService(&eventExecutor), &config.Cfg().RabbitMQ)
  33. if err != nil {
  34. log.Fatalf("new agent server failed, err: %s", err.Error())
  35. }
  36. agtSvr.OnError = func(err error) {
  37. log.Warnf("agent server err: %s", err.Error())
  38. }
  39. go serveScannerServer(agtSvr, &wg)
  40. wg.Wait()
  41. }
  42. func serveEventExecutor(executor *event.Executor, wg *sync.WaitGroup) {
  43. log.Info("start serving event executor")
  44. err := executor.Execute()
  45. if err != nil {
  46. log.Errorf("event executor stopped with error: %s", err.Error())
  47. }
  48. log.Info("event executor stopped")
  49. wg.Done()
  50. }
  51. func serveScannerServer(server *scsvr.ScannerServer, wg *sync.WaitGroup) {
  52. log.Info("start serving scanner server")
  53. err := server.Serve()
  54. if err != nil {
  55. log.Errorf("scanner server stopped with error: %s", err.Error())
  56. }
  57. log.Info("scanner server stopped")
  58. wg.Done()
  59. }

本项目旨在将云际存储公共基础设施化,使个人及企业可低门槛使用高效的云际存储服务(安装开箱即用云际存储客户端即可,无需关注其他组件的部署),同时支持用户灵活便捷定制云际存储的功能细节。