123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869 |
- package server
- import (
- "context"
- "sync"
- "github.com/go-nunu/nunu-layout-advanced/internal/job"
- "github.com/go-nunu/nunu-layout-advanced/pkg/log"
- "go.uber.org/zap"
- )
- type JobServer struct {
- log *log.Logger
- userJob job.UserJob
- whitelistJob job.WhitelistJob
- wg sync.WaitGroup
- }
- func NewJobServer(
- log *log.Logger,
- userJob job.UserJob,
- whitelistJob job.WhitelistJob,
- ) *JobServer {
- return &JobServer{
- log: log,
- userJob: userJob,
- whitelistJob: whitelistJob,
- }
- }
- func (j *JobServer) Start(ctx context.Context) error {
- j.log.Info("job server starting...")
- // 启动 UserJob 的消费者
- //j.wg.Add(1)
- //go func() {
- // defer j.wg.Done()
- // j.userJob.RegisterConsumer(ctx)
- //}()
- // 启动 WhitelistJob 的消费者
- j.wg.Add(1)
- go func() {
- defer func() {
- if r := recover(); r != nil {
- j.log.Error("whitelistJob domain consumer panic", zap.Any("error", r))
- }
- j.wg.Done()
- }()
- j.whitelistJob.DomainConsumer(ctx)
- }()
- j.wg.Add(1)
- go func() {
- defer func() {
- if r := recover(); r != nil {
- j.log.Error("whitelistJob ip consumer panic", zap.Any("error", r))
- }
- j.wg.Done()
- }()
- j.whitelistJob.IpConsumer(ctx)
- }()
- j.wg.Wait()
- return nil
- }
- func (j *JobServer) Stop(ctx context.Context) error {
- return nil
- }
|