54 lines
2.1 KiB
Go
54 lines
2.1 KiB
Go
package main
|
|
|
|
import (
|
|
"chatapp3-golang/internal/bootstrap"
|
|
"chatapp3-golang/internal/service/regionimgroup"
|
|
"chatapp3-golang/internal/service/registerreward"
|
|
"chatapp3-golang/internal/service/taskcenter"
|
|
"chatapp3-golang/internal/service/voiceroomredpacket"
|
|
"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)
|
|
taskCenterService := taskcenter.NewService(app.Config, app.Repository.DB, &app.Gateways)
|
|
regionIMGroupService := regionimgroup.NewService(app.Config, app.Repository.DB, &app.Gateways)
|
|
voiceRoomRedPacketService := voiceroomredpacket.NewService(app.Config, app.Repository.DB, app.Repository.Redis, app.Gateways.Wallet, regionIMGroupService, app.Gateways.Room)
|
|
voiceRoomRedPacketService.SetRegionResolver(&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)
|
|
}
|
|
if err := taskCenterService.StartMessageConsumer(workerCtx); err != nil {
|
|
log.Fatalf("start task center message consumer failed: %v", err)
|
|
}
|
|
if err := taskCenterService.StartArchiveWorker(workerCtx); err != nil {
|
|
log.Fatalf("start task center archive worker failed: %v", err)
|
|
}
|
|
voiceRoomRedPacketService.StartRefundWorker(workerCtx)
|
|
|
|
log.Printf("chatapp3-golang consumer started")
|
|
<-workerCtx.Done()
|
|
log.Printf("chatapp3-golang consumer stopped")
|
|
}
|