package main import ( "dsBaseRpc/RpcService/BaseClass/BaseClassProto" "dsBaseRpc/RpcService/BaseClass/BaseClassService" "dsBaseRpc/RpcService/BaseGlobal/BaseGlobalProto" "dsBaseRpc/RpcService/BaseGlobal/BaseGlobalService" "dsBaseRpc/RpcService/BaseOrganization/BaseOrganizationProto" "dsBaseRpc/RpcService/BaseOrganization/BaseOrganizationService" "dsBaseRpc/RpcService/BasePurview/BasePurviewProto" "dsBaseRpc/RpcService/BasePurview/BasePurviewService" "dsBaseRpc/RpcService/BaseRolePerson/BaseRolePersonProto" "dsBaseRpc/RpcService/BaseRolePerson/BaseRolePersonService" "dsBaseRpc/RpcService/BaseStudent/BaseStudentProto" "dsBaseRpc/RpcService/BaseStudent/BaseStudentService" "dsBaseRpc/RpcService/BaseTeacher/BaseTeacherProto" "dsBaseRpc/RpcService/BaseTeacher/BaseTeacherService" "dsBaseRpc/RpcService/GovArea/GovAreaProto" "dsBaseRpc/RpcService/GovArea/GovAreaService" "dsBaseRpc/RpcService/SysDict/SysDictProto" "dsBaseRpc/RpcService/SysDict/SysDictService" "dsBaseRpc/RpcService/SysLoginperson/SysLoginpersonProto" "dsBaseRpc/RpcService/SysLoginperson/SysLoginpersonService" "dsBaseRpc/Utils/CommonUtil" "dsBaseRpc/Utils/ConfigUtil" "dsBaseRpc/Utils/DbUtil" "dsBaseRpc/Utils/FileUtil" "dsBaseRpc/Utils/SysKit" "fmt" "github.com/robfig/cron/v3" "google.golang.org/grpc" "google.golang.org/grpc/reflection" "net" ) // 配置步骤: // https://studygolang.com/articles/16627?fr=sidebar // 黄海下载的是这个:protobuf-all-3.11.4.zip func main() { // 一、显示Logo configIniFile := "./Config/logo.txt" var logo = FileUtil.ReadFileContent(configIniFile) if !CommonUtil.Exists(configIniFile) { configIniFile = "/usr/local/dsMin/dsBaseWeb/Config/logo.txt" } fmt.Print(logo) //添加定时清理垃圾的代码 c := cron.New(cron.WithSeconds()) c.AddFunc("0 0 1 * * *", func() { //清除导入数据的临时表 var db = DbUtil.Engine sql := "truncate table t_base_teacher_import_excel" db.SQL(sql).Execute() sql = "truncate table t_base_student_import_excel" db.SQL(sql).Execute() }) c.Start() defer c.Stop() //二、清除redis所有Rpc层使用的缓存(不包含统一认证使用的缓存) SysKit.ClearRpcRedis() //三、初始化登录名的最大号 SysKit.InitLoginIdIntMax() //四、发布Grpc服务 //配置grpc服务器 lis, err := net.Listen("tcp", ":"+ConfigUtil.RpcServerPort) if err != nil { fmt.Printf("failed to listen: %v\n", err) } //声明服务 s := grpc.NewServer() //行政区划 GovAreaProto.RegisterGovAreaManageServer(s, &GovAreaService.Rpc{}) //权限 BasePurviewProto.RegisterBasePurviewManageServer(s, &BasePurviewService.Rpc{}) //字典 SysDictProto.RegisterSysDictManageServer(s, &SysDictService.Rpc{}) //组织机构 BaseOrganizationProto.RegisterBaseOrganizationManageServer(s, &BaseOrganizationService.Rpc{}) //班级 BaseClassProto.RegisterBaseClassManageServer(s, &BaseClassService.Rpc{}) //教师 BaseTeacherProto.RegisterBaseTeacherManageServer(s, &BaseTeacherService.Rpc{}) //学生 BaseStudentProto.RegisterBaseStudentManageServer(s, &BaseStudentService.Rpc{}) //登录帐号 SysLoginpersonProto.RegisterSysLoginpersonManageServer(s, &SysLoginpersonService.Rpc{}) //全局变量 BaseGlobalProto.RegisterBaseGlobalManageServer(s, &BaseGlobalService.Rpc{}) //人员角色 BaseRolePersonProto.RegisterBaseRolePersonManageServer(s, &BaseRolePersonService.Rpc{}) //五、 注册反射服务 这个服务是CLI使用的 跟服务本身没有关系 reflection.Register(s) //六、启动 fmt.Printf("服务发布成功,端口:%s", ConfigUtil.RpcServerPort) if err := s.Serve(lis); err != nil { fmt.Printf("failed to serve: %v\n", err) } }