func NewTaskServer(s store.Store, serverUrl, templatesPath string) *measurementsServerState { queries := make(chan *store.Query) go s.WriteQueries(queries) measurementIds := generateMeasurementIds() go s.ScheduleTaskGroups() taskGroups := s.TaskGroups() countResultsRequests := make(chan store.CountResultsRequest) go s.CountResultsForReferrer(countResultsRequests) return &measurementsServerState{ Store: s, Templates: template.Must(template.ParseGlob(filepath.Join(templatesPath, "[a-zA-Z]*"))), Queries: queries, MeasurementIds: measurementIds, TaskGroups: taskGroups, CountResultsRequests: countResultsRequests, ServerUrl: serverUrl, } }