package main import ( "fmt" "penahub.gitlab.yandexcloud.net/backend/quiz/telegram/client" "penahub.gitlab.yandexcloud.net/backend/quiz/telegram/models" "penahub.gitlab.yandexcloud.net/backend/quiz/telegram/respondent" "penahub.gitlab.yandexcloud.net/backend/quiz/telegram/stateManager" "sync" "time" ) func main() { var wg sync.WaitGroup wg.Add(len(models.DataSet)) for i := 0; i < len(models.DataSet); i++ { go func(i int) { defer wg.Done() mockClient := client.NewClient() mockStateManager := stateManager.NewStateManager(stateManager.Deps{ Questions: models.DataSet[i], State: "start", Client: mockClient, }) mockRespondent := respondent.NewRespondent(mockStateManager) mockStateManager.SendQuestion() for mockStateManager.State != "end" { mockRespondent.Respond() fmt.Println("respond") time.Sleep(2 * time.Second) } fmt.Println(fmt.Sprintf("gorutine %d is complete, now serch it messages", i)) for number, msg := range mockClient.Messages { fmt.Println(fmt.Sprintf("gorutine %d, message %s, message number %d", i, msg, number)) } }(i) } wg.Wait() fmt.Println("complete") }