Sobes.tech
Senior

Peut-on rejeter immédiatement une annonce si le service rapide a déjà renvoyé un rejet, sans attendre le service ML lent d'antifraude?

sobes.tech IA

Réponse de l'IA

Да, можно сразу отклонить (reject) запрос, если быстрый сервис антифрода вернул отказ, не дожидаясь результата медленного ML-сервиса.

Это распространённый подход для оптимизации времени отклика и ресурсов:

  • Быстрый сервис выполняет первичную проверку и при явном отказе сразу возвращает reject.
  • Медленный ML-сервис может продолжать обработку асинхронно для логирования, обучения или последующего анализа.

В Go это можно реализовать с помощью каналов и контекстов, отменяя ожидание результата медленного сервиса при получении отказа от быстрого.

Пример:

fastResult := make(chan bool)
slowResult := make(chan bool)

// Запускаем быстрый сервис
go func() {
    fastResult <- fastAntiFraudCheck()
}()

// Запускаем медленный ML-сервис
go func() {
    slowResult <- slowMLCheck()
}()

select {
case fastOk := <-fastResult:
    if !fastOk {
        // reject сразу
        return reject()
    }
    // ждем slowResult или продолжаем
case slowOk := <-slowResult:
    if !slowOk {
        return reject()
    }
}

Таким образом, можно повысить отзывчивость системы, не дожидаясь долгих проверок, если уже есть основание для отказа.