审查视图

tangxvhui authored
1 2 3
package main

import (
唐旭辉 authored
4 5 6
	"context"
	"os"
	"os/signal"
唐旭辉 authored
7
	"sync"
唐旭辉 authored
8 9
	"syscall"
tangxvhui authored
10 11 12 13 14
	"github.com/astaxie/beego"
	"github.com/astaxie/beego/logs"
	_ "gitlab.fjmaimaimai.com/mmm-go/partnermg/pkg/infrastructure/pg"
	_ "gitlab.fjmaimaimai.com/mmm-go/partnermg/pkg/log"
	_ "gitlab.fjmaimaimai.com/mmm-go/partnermg/pkg/port/beego"
唐旭辉 authored
15
	"gitlab.fjmaimaimai.com/mmm-go/partnermg/pkg/port/consumer"
tangxvhui authored
16 17 18
)

func main() {
唐旭辉 authored
19 20 21
	sigs := make(chan os.Signal, 1)
	signal.Notify(sigs, os.Interrupt, os.Kill, syscall.SIGINT, syscall.SIGTERM)
	ctx, cancel := context.WithCancel(context.Background())
唐旭辉 authored
22 23 24 25
	go func() {
		logs.Info("应用启动")
		beego.Run()
	}()
Your Name authored
26
	consumerRun := consumer.NewRuner()
唐旭辉 authored
27 28 29
	if err := consumerRun.InitConsumer(); err != nil {
		logs.Error("启动kafka消息消费者失败:%s", err)
	}
唐旭辉 authored
30 31
	wg := &sync.WaitGroup{}
	wg.Add(1)
Your Name authored
32 33
	go func() {
		consumerRun.Start(ctx)
唐旭辉 authored
34
		wg.Done()
Your Name authored
35 36 37 38 39
	}()
	go func() {
		<-consumerRun.IsReady()
		logs.Info("Sarama consumer up and running!...")
	}()
唐旭辉 authored
40
	for {
唐旭辉 authored
41 42 43
		select {
		case <-sigs:
			cancel()
唐旭辉 authored
44
			wg.Wait()
唐旭辉 authored
45 46
			return
		default:
唐旭辉 authored
47
		}
唐旭辉 authored
48
	}
tangxvhui authored
49
}