47 lines
1.1 KiB
Go
47 lines
1.1 KiB
Go
|
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")
|
||
|
}
|