Дублируются данные в горутине, что делать?

package main 

import (
    "github.com/gofiber/fiber/v2"
    "github.com/polds/imgbase64"
)

var (
    response models.QQResponse
    extra    models.ExtraBody
)

func Gen(url string) {
    request := fiber.Post("https://ai.tu.qq.com/trpc.shadow_cv.ai_processor_cgi.AIProcessorCgi/Process")
    request.JSON(fiber.Map{
        "images": []string{url},
        "busiId": "ai_painting_anime_img_entry",
    })

    request.Struct(&response)

    if len(response.Extra) != 0 {
        if err := json.Unmarshal([]byte(response.Extra), &extra); err != nil {
            log.Println("Ошибка при парсинге: ", err)
            return
        }

        fmt.Println(extra.UUID)
    }
}

func main() {
    //обычный код серверной части https://github.com/gofiber/recipes/blob/master/hello-world/main.go
    //вызываем из метода функцию
    go Gen(imgbase64.FromRemote("http://somedomain.com/animage.jpg"))
    
    return c.SendString("Hello, World ?!")
}

Если высокий RPS, то UUID начнет повторяться, что можно сделать, чтобы случайно не попала чужая картинка другому юзеру?


Ответы (0 шт):