2024-07-30 11:28:59 +00:00
|
|
|
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"
|
2024-08-01 14:23:54 +00:00
|
|
|
"penahub.gitlab.yandexcloud.net/backend/quiz/telegram/state_manager"
|
2024-07-30 11:28:59 +00:00
|
|
|
"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")
|
|
|
|
}
|