Example #1
0
// Fetch fetches a set of messages
func (p *messagePartition) Fetch(req *store.FetchRequest) {
	log.WithField("fetchRequest", *req).Debug("Fetching")

	go func() {
		fetchList, err := p.calculateFetchList(req)

		if err != nil {
			log.WithField("err", err).Error("Error calculating list")
			req.ErrorC <- err
			return
		}
		req.StartC <- fetchList.len()

		err = p.fetchByFetchlist(fetchList, req)

		if err != nil {
			log.WithField("err", err).Error("Error calculating list")
			req.Error(err)
			return
		}
		req.Done()
	}()
}