Amazon Daten aktualisieren

M

methos

Guest
Bin dabei einen kleine Seite aufzubauen, die die Artikeldaten aus Amazon verwendet.
Einen Teil davon speichere ich lokal in einer Datenbank. Was soweit auch kein Problem ist.
Allerdings muß ich die Preise usw. ja täglich aktualisieren.
Ich hab also ein Skript geschrieben das mir alle Daten aus der DB holt und mit den aktuellen von Amazon vergleicht.
Allerdings habe ich das Problem, das der Speicherbedarf des Skriptes enorm ist.
Ein CODE mysql_free_result($result);
nach jeder Abfrage existiert schon.

Speichert noch jemand die Daten in einer eigenen DB? Falls ja wie löst ihr das Problem mit der Aktualisierung der Daten?
 
Bei der Datenmenge macht es doch wenig Sinn, die Daten lokal zu speichern. Abgesehen davon, habe ich irgendwo im Hinterkopf, dass Amazon dies gar nicht schätzt.

Gruss, Ivo
 
Ich spiegel ja nicht den kompletten Amazon Datenbestand, sondern nur einen Teil davon.
Außerdem warum sollte Amazon dies nicht schätzen? Solange die Daten aktuell sind?
 
Amazon verbietet Speicherung von Daten länger als 24h, bei Preisen sagt mein Hinterkopf: länger als 1h.
Das Problem der Aktualisierung der Daten sollte eigentlich durch den Aufbau des Webservices an sich gelöst sein.
 
so hier mal ein Auszug:


6) You may store Amazon Properties generally (other than pricing or availability information) for caching purposes for up to 24 hours, however, you may store the following Amazon Properties for caching purposes for up to 1 month:

URL ASIN Product Name Catalog
Artists Authors MPN Starring
ISBN Directors Manufacturer Media
Distributor Release Date Publisher Num Media
UPC Reading Level Theatrical Release Date Platforms
MpaaRating EsrbRating AgeGroup Encoding

You specifically acknowledge and agree that at any time Amazon may direct you to delete any of the above Amazon Properties and you will promptly comply with any such direction.

7) You must refresh and re-display any Amazon Properties (other than pricing or availability information) at least once every 24 hours or 1 month, as applicable, by making a call to Amazon Web Services and refreshing your Applications contents immediately after the call.


Aber vielleicht kann mir ja nun jemand zum eigentlichen Problem etwas sagen?
sad.gif
 
Cronjob der alle x ein Päcken abarbeitet und jeweis nach letzen Aktualisierungsdatum sortiert (oldest first).
Dabei würd ich nicht mal überprüfen ob die Daten geändert haben, sondern einfach die neuen xml in die DB konvertieren.

Wieviele Produktdaten?
 
Also im moment sind das ca. 60000. Wird allerdings zwangsläufig mehr werden, da noch andere Sparten mit aufgenommen werden.
Das aktuelle Skript versieht die Artikel die ein Update erhalten haben schon mit einem timestamp, so das diese dann auch wirklich erst wieder in den nächsten 24 Stunden ein Update erhalten.

Dann werde ich wohl oder übel nen cron einrichten müssen der immer einen kleinen Teil abarbeitet.
Evtl. könnte ja auch ein bash oder Perl Skript das PHP Skript so lange aufrufen bis alle Artikel abgearbeitet wurden.

Bin ich denn wirklich der einzige hier, der die Daten lokal cached?
unsure.gif
 
Nein.

Eine alternative Lösung ist, dass Du bei Aufruf prüfst wie alt die Daten sind und dann entsprechend wenn notwendig einen rpc machst um diesen Datensatz zu aktualisieren. Das hat den Vorteil, dass von den >60k vor allem diese aktuell gehalten werden, welche auch angesehen werden, und dass der Aufwand schön verteilt ist.

Trotzdem würde ich die cron Lösung im Hintergrund als 'Aufräumer' parallel einsetzen.

Ob Du den Umweg via shell oder perl machst ist nicht von Bedeutung und eher sinnlos, es sei denn Du bist gewillt einen Prozess ständig am laufen zu halten, oder diesen manuell zu starten.
 
Das mit der Aktualisierung pro Aufruf hab ich mir auch schon überlegt, allerdings komme ich so oder so nicht drum herum einmal pro Tag für alle Artikel den Abgleich zu starten.

Perl und Bash kann ich leider nicht sooo gut, so das ich hier erst mal testen muß. Hier sehe ich halt den Vorteil, das sich keine Prozesse überschneiden können wie beim cronjob.
Kann allerdings auch sein, das mit dem Perl Skript das ganze wieder sehr speicherintensiv wird.

Für Vorschläge bin ich aber immer noch offen
smile.gif
 
Zurück
Oben