feat(grpc): add gRPC server infrastructure and schedule sync service
Add gRPC server support with configurable TLS, environment-based settings, and Wire injection. Implement schedule synchronization service with task runner integration for external course data fetching. - Add gRPC configuration with env var overrides (APP_GRPC_ENABLED, APP_GRPC_PORT, etc.) - Create gRPC server infrastructure with runner task management - Implement ScheduleSyncService for course data synchronization - Add sync endpoint to schedule handler for external system integration - Update repository with context-aware batch delete operation - Wire all dependencies including zap logger for structured logging
This commit is contained in:
25
internal/wire/grpc.go
Normal file
25
internal/wire/grpc.go
Normal file
@@ -0,0 +1,25 @@
|
||||
package wire
|
||||
|
||||
import (
|
||||
"carrot_bbs/internal/config"
|
||||
"carrot_bbs/internal/grpc/runner"
|
||||
|
||||
"github.com/google/wire"
|
||||
"go.uber.org/zap"
|
||||
)
|
||||
|
||||
// GRPCSet gRPC 相关的 Provider Set
|
||||
var GRPCSet = wire.NewSet(
|
||||
ProvideGRPCServer,
|
||||
ProvideTaskManager,
|
||||
)
|
||||
|
||||
// ProvideGRPCServer 提供 gRPC 服务器
|
||||
func ProvideGRPCServer(cfg *config.Config, logger *zap.Logger) *runner.Server {
|
||||
return runner.NewServer(&cfg.GRPC, logger)
|
||||
}
|
||||
|
||||
// ProvideTaskManager 提供 TaskManager
|
||||
func ProvideTaskManager(server *runner.Server) *runner.TaskManager {
|
||||
return server.GetTaskManager()
|
||||
}
|
||||
Reference in New Issue
Block a user