Sobes.tech
Senior

Μπορείτε να απορρίψετε άμεσα μια διαφήμιση αν η γρήγορη υπηρεσία έχει ήδη επιστρέψει απόρριψη, χωρίς να περιμένετε την αργή υπηρεσία ML anti-fraud;

sobes.tech AI

Απάντηση από AI

Ναι, είναι δυνατόν να απορριφθεί άμεσα το αίτημα εάν η γρήγορη υπηρεσία anti-fraud επιστρέψει άρνηση, χωρίς να περιμένουμε το αποτέλεσμα της αργής υπηρεσίας 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 {
        // άμεση απόρριψη
        return reject()
    }
    // περιμένουμε το slowResult ή συνεχίζουμε
case slowOk := <-slowResult:
    if !slowOk {
        return reject()
    }
}

Με αυτόν τον τρόπο, μπορεί να βελτιωθεί η ανταπόκριση του συστήματος, χωρίς να περιμένει μακρές ελέγχους, εάν ήδη υπάρχει λόγος απόρριψης.