Wie vermeiden Sie die doppelte Verarbeitung auf dem Python -API -Server?Python

Python-Programme
Guest
 Wie vermeiden Sie die doppelte Verarbeitung auf dem Python -API -Server?

Post by Guest »

Angenommen, eine Funktion detekt_primes ist teuer zu rufen, und ich möchte wiederholte Anrufe mit doppelten Parametern vermeiden. Was soll ich tun? Wenn beide Anfragen den Cache als leer ansehen, werden beide die teure Funktion ausführen.

Code: Select all

def detect_primes(nums: List[int]) -> Dict[int, bool]:
""" detect whether a list of numbers are prime """
< /code>
@app.route('/detect', methods=['GET'])
def search():
args = request.args
nums = list(map(int, args.get('nums', '').split(',')))
return detect_primes(nums)
< /code>
Zum Beispiel, wenn ein Benutzer mit 13,14,15 anfordert, fordert ein anderer Benutzer mit 15,16.
die Antworten {"13": True, "14" : false, "15": false} 
und {"15": false, "16": false}
Ich möchte vermeiden, dass detekte_primes
detct_primes vermeiden möchte /Code> mit [13, 14, 15] und [15, 16] . Idealerweise sollten beide Anfragen auf einen Anruf mit [13, 14, 15, 16] (oder zwei Anrufe [13, 14, 15] und [16] ) warten und die zurückgeben und die zurückgeben Die jeweiligen Ergebnisse. < /p>
Die Auswahl des Web -Frameworks ist mir nicht wichtig. Die Frage ist ein Duplikat von oder wird in den globalen Variablen im Flask beantwortet? Wie teile ich Daten zwischen Anfragen weiter? Wie oben erläutert, kann ein Cache nicht verwendet werden (sei es ein pythoner Cache in Memory oder ein externer Cache oder DB). Ich bin froh, durch eine Antwort nachgewiesen zu werden.

Quick Reply

Change Text Case: 
   
  • Similar Topics
    Replies
    Views
    Last post