Sobes.tech
Senior

Czy można od razu odrzucić ogłoszenie, jeśli szybka usługa już zwróciła odrzucenie, nie czekając na wolną usługę ML antyfrauda?

sobes.tech AI

Odpowiedź od AI

Tak, można od razu odrzucić żądanie, jeśli szybki serwis antyfraudowy zwróci odmowę, nie czekając na wynik wolniejszego serwisu ML.

To powszechne podejście do optymalizacji czasu reakcji i zasobów:

  • Szybki serwis wykonuje wstępną kontrolę i w przypadku wyraźnej odmowy od razu zwraca reject.
  • Wolny serwis ML może kontynuować przetwarzanie asynchronicznie do celów logowania, szkolenia lub analizy.

W Go można to zaimplementować za pomocą kanałów i kontekstów, anulując oczekiwanie na wynik wolnego serwisu po otrzymaniu odmowy od szybkiego.

Przykład:

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

// Uruchom szybki serwis
go func() {
    fastResult <- fastAntiFraudCheck()
}()

// Uruchom wolny serwis ML
go func() {
    slowResult <- slowMLCheck()
}()

select {
case fastOk := <-fastResult:
    if !fastOk {
        // odrzucenie od razu
        return reject()
    }
    // czekaj na slowResult lub kontynuuj
case slowOk := <-slowResult:
    if !slowOk {
        return reject()
    }
}

W ten sposób można zwiększyć responsywność systemu, nie czekając na długie kontrole, jeśli już istnieje powód do odrzucenia.