// SendChord triggers a group of parallel tasks with a callback func (server *Server) SendChord(chord *Chord) (*backends.ChordAsyncResult, error) { _, err := server.SendGroup(chord.Group) if err != nil { return nil, err } return backends.NewChordAsyncResult( chord.Group.Tasks, chord.Callback, server.backend, ), nil }
// SendChord triggers a group of parallel tasks with a callback func (server *Server) SendChord(chord *Chord) (*backends.ChordAsyncResult, error) { // Set initial task states to PENDING for _, signature := range chord.Group.Tasks { if err := server.backend.SetStatePending(signature); err != nil { return nil, fmt.Errorf("Set State Pending: %v", err) } } for _, signature := range chord.Group.Tasks { if err := server.broker.Publish(signature); err != nil { return nil, fmt.Errorf("Publish Message: %v", err) } } return backends.NewChordAsyncResult(chord.Group.Tasks, chord.Callback, server.backend), nil }