func (this *Worker) Init(config *CallbackItemConfig) error { this.Callback = &WorkerCallback{ Url: config.Url, RetryTimes: config.RetryTimes, Timeout: config.Timeout, BypassFailed: config.BypassFailed, FailedSleep: config.FailedSleep, } this.Topics = config.Topics this.Zookeeper = config.Zookeepers this.ZkPath = config.ZkPath this.Consumer = nil cgConfig := consumergroup.NewConfig() cgConfig.Offsets.ProcessingTimeout = 10 * time.Second cgConfig.Offsets.Initial = sarama.OffsetNewest if len(this.ZkPath) > 0 { cgConfig.Zookeeper.Chroot = this.ZkPath } cgName := this.getGroupName() consumer, err := consumergroup.JoinConsumerGroup(cgName, this.Topics, this.Zookeeper, cgConfig) if err != nil { log.Fatalf("Failed to join consumer group for url[%s], %s", this.Callback.Url, err.Error()) return err } else { log.Printf("Join consumer group for url[%s] with UUID[%s]", this.Callback.Url, cgName) } this.Consumer = consumer return nil }
func (this *Worker) Init(config *CallbackItemConfig) error { this.Callback = &WorkerCallback{ Url: config.Url, RetryTimes: config.RetryTimes, Timeout: config.Timeout, BypassFailed: config.BypassFailed, FailedSleep: config.FailedSleep, } this.Topics = config.Topics this.Zookeeper = config.Zookeepers this.ZkPath = config.ZkPath this.Consumer = nil cgConfig := consumergroup.NewConfig() cgConfig.Offsets.ProcessingTimeout = 10 * time.Second cgConfig.Offsets.CommitInterval = time.Duration(commitInterval) * time.Second cgConfig.Offsets.Initial = sarama.OffsetNewest // Random Sleeping to avoid burst commit onto ZK. r := rand.Intn(commitInterval) time.Sleep(time.Duration(r)) if len(this.ZkPath) > 0 { cgConfig.Zookeeper.Chroot = this.ZkPath } cgName := this.getGroupName() consumer, err := consumergroup.JoinConsumerGroup(cgName, this.Topics, this.Zookeeper, cgConfig) if err != nil { glog.Errorf("Failed to join consumer group for url[%v], %v", this.Callback.Url, err.Error()) return err } else { glog.V(1).Infof("Join consumer group for url[%s] with UUID[%s]", this.Callback.Url, cgName) } glog.Infoln(consumer) this.Consumer = consumer return nil }