40 lines
1.2 KiB
Go

package main
import (
"chatapp3-golang/internal/bootstrap"
"chatapp3-golang/internal/service/registerreward"
"chatapp3-golang/internal/service/weekstar"
"context"
"log"
"os/signal"
"syscall"
"time"
)
func main() {
ctx, cancel := context.WithTimeout(context.Background(), 10*time.Second)
defer cancel()
app, err := bootstrap.New(ctx)
if err != nil {
log.Fatalf("bootstrap consumer failed: %v", err)
}
registerRewardService := registerreward.NewRegisterRewardService(app.Config, app.Repository.DB, app.Repository.Redis, &app.Gateways)
weekStarService := weekstar.NewWeekStarService(app.Config, app.Repository.DB, app.Repository.Redis, &app.Gateways)
workerCtx, workerCancel := signal.NotifyContext(context.Background(), syscall.SIGINT, syscall.SIGTERM)
defer workerCancel()
if err := registerRewardService.Start(workerCtx); err != nil {
log.Fatalf("start register reward consumer failed: %v", err)
}
if err := weekStarService.StartMessageConsumer(workerCtx); err != nil {
log.Fatalf("start week star message consumer failed: %v", err)
}
log.Printf("chatapp3-golang consumer started")
<-workerCtx.Done()
log.Printf("chatapp3-golang consumer stopped")
}