2017-07-09 2 views
0

Ich entwickle gerade eine Webseite. Ich möchte Ergebnisse von einer API zwischenspeichern, aber die API ist langsam, daher muss ich gleichzeitige PHP-Anfragen für dasselbe Ergebnis behandeln.Mehrere PHP Anfragen warten auf einen

Wenn ein PHP API-Ergebnisse für eine bestimmte ID sammelt, möchte ich nächste PHP-Anfragen für die gleiche ID warten, die erste zu beenden und nur den zwischengespeicherten Wert lesen.

Meine aktuelle Lösung ist es, einen leeren Wert im Cache hinzuzufügen (und wenn der Wert leer ist, werden neue PHP-Anfragen nur schlafen und erneut prüfen), aber es funktioniert manchmal nicht.

Gibt es einen anderen oder besseren Weg?

Antwort

0

Erwägen Sie die Verwendung der Synchronisation, die von der PECL Sync-Bibliothek und der SyncReaderWriter-Klasse bereitgestellt wird, oder einfach durch einfaches Dateisperrsystem.

Wenn Sie eine funktionierende Lösung wollen, habe ich PHP Cache Bibliothek erstellt, die den Lese-/Schreibprozess speziell für Aufgaben wie Sie oben beschrieben synchronisieren.

Ich denke, dass Sie es nützlich finden können, überprüfen Sie es hier: https://github.com/tztztztz/php-no-slam-cache

Verwandte Themen