Senior
Може ли одмах одбити оглас ако брзи сервис већ вратио одбијање, без чекања на споредни ML-сервис антифрауд?
sobes.tech АИ
Одговор од АИ
Da, moguće je odmah odbiti zahtev ako brza anti-fraud usluga vrati odbijanje, bez čekanja na rezultat spore ML usluge.
Ovo je čest pristup za optimizaciju vremena odgovora i resursa:
- Brza usluga vrši inicijalnu proveru i u slučaju jasnog odbijanja odmah vraća reject.
- Spora ML usluga može nastaviti sa obradom asinhrono za logovanje, obuku ili kasniju analizu.
U Go jeziku, ovo se može implementirati pomoću kanala i konteksta, otkazivanjem čekanja na rezultat spore usluge kada brza vrati odbijanje.
Primer:
fastResult := make(chan bool)
slowResult := make(chan bool)
// Pokrećemo brzu uslugu
go func() {
fastResult <- fastAntiFraudCheck()
}()
// Pokrećemo sporu ML uslugu
go func() {
slowResult <- slowMLCheck()
}()
select {
case fastOk := <-fastResult:
if !fastOk {
// odmah odbiti
return reject()
}
// čekati na slowResult ili nastaviti
case slowOk := <-slowResult:
if !slowOk {
return reject()
}
}
Na ovaj način, može se povećati odziv sistema, ne čekajući duge provere, ako već postoji razlog za odbijanje.