2015-07-22 9 views
7

Hallo alle Grüße, ich entwickle Website, die Trivago und Hotelscombined ähnlich ist. Ich bin in der Lage, die Daten von allen Apis wie Expedia, Skoosh, Lateroom, GETRAUM, Venere, Hotel pronto zu bekommen. Ich stehe an dem Punkt fest, an dem ich die Leistung der Website aufrechterhalten muss. Ich möchte wissen, wie man die Website schneller macht, wie zB http://www.trivago.com, http://hotelscombined.com.PHP: Wie bekommt Trivago, Hotels kombiniert Daten schneller

So arbeiten Sie mit Seitenumbruch und vergleichen Sie die Preise mit allen Apis zusammen. Wenn ich einen Cron-Job laufen lasse und die Daten in der Datenbank speichere, wäre es einfacher für mich, die Preise aller apis anzuzeigen und sie zu vergleichen, und es wird schneller. Aber es ist die schlechte Idee für mich, den Cron-Job zu führen, besonders wenn wir über Hotels api sprechen, weil sich der Inhalt jedes Mal für Hotels ändert. Problem mit der Cron ist, dass es Tausende von Städten gibt, wie viele Daten in der Datenbank abgerufen werden sollten und wie oft, weil Hotels in nächsten 1 Stunde ca. gebucht werden. Wenn wir den Cron-Job ausführen und annehmen, dass ein Hotel gebucht wurde, das abgerufen und in der Datenbank gespeichert wurde, wie sollte ich das dann handhaben? Wenn Cron die Antwort auf die Frage ist, wie sollen wir 10 bis 20 APIS-Daten mit Hotelbeschreibungen, Bildern usw. in die Datenbank holen und verwalten, weil es über 1 Million Hotels in der Welt gibt oder mehr als 10 Millionen. Auch gibt es Fälle wie:

i) Suche nach Hotel in New York für 2 Erwachsene, 1 Kinder vom 1. August Check-in Zeit bis 8. August Check-out Zeit.

ii) Suche nach einem Hotel in London für 1 Erwachsene, 2 Kinder vom 2. August Check-in bis zum 5. August Check-out Zeit. Und es kann viele Fälle in der Suche geben. Wie oft und für wie viele Fälle sollten wir den Cron laufen lassen?

innerhalb der Spezifikation von Expedia (http://developer.ean.com/spec/) wird festgestellt, dass es eine Einschränkung der Anzahl der Anfragen ist: - Hotelliste Anfragen: 5000: 1 - Zimmer Verfügbarkeit Anfragen: 500: 1

Es wird sehr hilfreich für mich, wenn ich in der Lage bin zu wissen, wie man die Website beschleunigt.

Vielen Dank im Voraus

Antwort

4

Ich denke, Sie haben Ihre eigene Frage beantwortet. Cron-Jobs und Caching zu lokalen Datenbank klingt wie eine gute Idee für mich. Setzen Sie einfach den Cron auf ein ähnliches Intervall, in dem sich der Inhalt an den verschiedenen Hotel-Seiten ändert. Wenn die Leistung entscheidend ist, haben Sie vielleicht die Cache-Datenbank auf ihrem eigenen Server.

+0

Mein Fehler, das sollte ein Kommentar sein. – Liren

+0

Danke für die Antwort, keine Probleme, ich möchte eine Antwort ernst. Ich stecke hier die letzten 2 Wochen fest! –

+0

Problem mit dem Cron ist, dass es Tausende von Städten gibt, wie viele Daten in die Datenbank geholt werden sollten und wie oft, weil Hotels in der nächsten 1 Stunde ca. gebucht werden. Wenn wir den Cron-Job ausführen und annehmen, dass ein Hotel gebucht wurde, das abgerufen und in der Datenbank gespeichert wurde, wie sollte ich das dann handhaben? –

1

Amuk, versuchen Sie, curl_multi zu verwenden. Es ist eine großartige Möglichkeit, mehrere HTTP-Anfragen in PHP parallel zu bearbeiten. curl_multi ist besonders praktisch, wenn Sie mit großen Datenmengen arbeiten (z. B. tausende RSS-Feeds gleichzeitig holen). http://www.onlineaspect.com/2009/01/26/how-to-use-curl_multi-without-blocking/

+0

der Artikel könnte ein bisschen alt sein, aber die Bibliothek wird von trivago und den Rest https://github.com/joshfraser/rolling-curl verwendet – LikeMike