![]() |
Automatisieren von Web-Aktualisierungen
[Edit 1] Titel geändert
[Edit 2]Evtl. bin ich im falschen Forum. Ich möchte euch fragen wie ihr folgendes Problem lösen würdet. Ich habe einen Shop der duch verschiedene Phpscripte im Sinne von Cronjobs aktualisiert wird. Ich muss nun ein Programm realisieren welches bestimmte Jobs zu bestimmten, individuellen Zeiten durchführt. Im Programm soll eine URL und eine Zeit eingegeben werden. Der Vorgang ist immer wieder der gleiche. Eine URL wird aufgerufen und die Aktualisierung wird zu einer bestimmten Zeit durchgeführt, entweder über einen Webbrowser oder über eine Http-Komponente. Mein Problem sind die Komponenten. Ich weiß nicht wieviel Komponenten (Webbrowser, IdHttp) ich brauche, es können bis zu 50 und mehr Jobs eingegeben eingegeben werden. Ich dachte schon daran die Komponente dynamisch zu erzeugen. Was meint ihr dazu? Grüße Capo |
Re: Automatisieren von Web-Aktualisierungen
Hallo Capo,
ich würde eine einzige Komponente (idHTTP beispielsweise) nutzen und diese zu bestmmten Zeiten mit den entsprechenden URLs füttern. Falls mehrere Aktualisierungen zur gleichen Zeit ausgeführt werden sollen, könntest du diese in einer Schleife abarbeiten. Dann wäre das bei gleicher Zeit eben nicht sekundengenau. Grüße, Matze |
DP-Maintenance
Dieses Thema wurde von "Matze" von "VCL / WinForms / Controls" nach "Internet / LAN / ASP.NET" verschoben.
Ich denke, das passt hier besser hin. |
Re: Automatisieren von Web-Aktualisierungen
Hallo Matze,
danke für deinen Gedankengang. Kann man mit einer einzigen IdHttp-Komponente mehrere Dinge gleichzeitig tun und dann auch noch auf bestimmte Meldungen reagieren z.B. wenn Job erledigt ist? Wenn so ein Job gestartet wurde kann er immerhin 20-30 Minuten dauern. Gruss Capo |
Re: Automatisieren von Web-Aktualisierungen
Bzw. reicht es aus wenn IDHttp den Prozess anschubst und dann den Kontakt zu dem Script beendet?
Viele Grüße Capo |
Re: Automatisieren von Web-Aktualisierungen
Hallo,
mit Deiner Fragestellung komme ich noch nicht so recht klar: Fragen: Ein Programm und ein Server? Das Programm soll dem Server für n Jobs den Anstoß geben, etwas zu tuen? technisches: Die Zahl der gleichzeitigen HTTP-Verbindungen zwischen Client und Server ist begrenzt (2?). Wenn es darum geht, den Server nur "anzustoßen", aber keine Ergebnisse der Arbeit zu erwarten, könntest Du hergehen, per HTTP den Anstoß geben, der Server quittiert Dir sofort, dass er den Auftrag angenommen hat und arbeitet den Job im Hintergrund ab. Vom Ergebnis dieser Abarbeitung erfährst Du nichts. Hier reicht eine Komponente aus, die die Aufräge in 'ner Schleife absetzt. Musst Du in der Komponente auf die Ergebnisse warten, dann benötigst Du je Job eine Komponente. Alternativ wäre auch möglich: Eine Komponente setzt die Aufträge ab, der Server quittiert sofort "Auftrag erhalten" und legt, nachdem er den Job erledigt habt, das Ergebnisse an einer definierten Stelle ab. In einer Schleife könnten diese definierten Ablagestellen der Jobs dann wieder per HTTP abgefragt werden, bis der Client die erwünschten Ergebnisse erhält, die er dann auswerten kann. |
Re: Automatisieren von Web-Aktualisierungen
Zitat:
Zitat:
Das Programm soll einen Shopdatenbank (Mysql)aktualisieren. Es gibt mehrere Links die sozusagen Php-Dateien aufrufen die ihrerseits Daten in die Shopdatenbank importieren. Wenn ich so einen Link aufrufe (funktioniert auch über den Webbrowser) erhalte ich nach dem Import eine Nachricht (kein alert oder popup) Auch zu Begin erhalte ich eine Meldung. Müßte also mit dem Anstoß reichen, oder? Müßte ich dann mit einem Post erreichen können? Gruß Capo |
Re: Automatisieren von Web-Aktualisierungen
Hallo...
ich nochmal, ich habe nochmal darüber nachgedacht, ein Anstoß reicht doch nicht, muss die "Fertig"- Meldung doch noch weiter verarbeiten. Vergessen zu erwähnen habe ich: Über die externe Datei wird eine Mysql-Datenbank aktualisiert. Noch ein Gedanke dazu: Die URL's stehen untereinander in einem Stringgrid inkl des Zeitinterwalls. Ist es möglich für jede Zeile eine eigene IDHttp dynamisch zu erstellen? Hat jemand von Euch schonmal sowas gemacht. Evtl. ein Beispiel für mich? Freundliche Grüße Capo |
Re: Automatisieren von Web-Aktualisierungen
Hallo...ich brauche dringend Hilfe, evtl. nerve ich damit jetzt auch, aber es ist wirklich dringend.
|
Re: Automatisieren von Web-Aktualisierungen
Hallo Capo!
Ich habe jetzt nur folgendes gelesen: Zitat:
Grob könnte das so aussehen:
Delphi-Quellcode:
Ich vermute, im "finally" darf man das noch nicht freigeben, doch das könntest du im OnDestroy-Ereignis oder im finalization-Abschnitt erledigen. Theoretisch würde ich sagen, dass es nicht mal erforderlich ist, da der Owner in diesem Fall "Form1" ist und die Komponenten daher freigegeben werden, sobald Form1 freigegeben wird.
private
MyIdHTTPs: array of TIdHTTP; // ... SetLength(MyIdHTTPs, StringList.Count); for i := 0 to StringList.Count - 1 do begin MyIdHTTPs[i] := IdHTTP.Create(Form1); try MyIdHTTPs[i].Get(); // oder .Post() oder wie auch immer finally end; end; In dem Fall wäre "finally" natürlich überflüssig. Evtl. hilft's, evtl. nicht. Viel Erfolg. Grüße, Matze |
Re: Automatisieren von Web-Aktualisierungen
Danke Matze, damit kann ich schon viel anfangen. Obwohl ich noch viele Fragen dazu habe.
Ich denke, es ist schon etwas aufwändiger so ein Programm zu erstellen. Warum ist deine Lösung unsauber? Gruss vom Capo |
Re: Automatisieren von Web-Aktualisierungen
Hi
Zitat:
Wenn du 1000 Links hast und 1000 Komponenten dynamisch erzeugt werden, weiß ich nicht, wie stark der RAM oder die CPU belastet wird und ob es nicht unerwünschte Nebeneffekte haben kann, weil sich irgendwas gegenseitig beeinflusst. Aber versuchen kannst du es. Ich weiß jedoch auch nicht, ob 1000 - mehr oder weniger - gleichzeitig arbeitende IdHTTP-Komponenten zuverlässig ihre Aufgabe erfüllen, oder ob Windows irgendwann einen Strich durch die Rechnung macht. Das sind aber alles nur Überlegungen, die nicht zutreffen müssen. Grüße, Matze |
Re: Automatisieren von Web-Aktualisierungen
es werden höchsten 50 links allerhöchsten.
|
Re: Automatisieren von Web-Aktualisierungen
Ich habe meinem Beitrag nochmal etwas ergänzt. Bevor du an der Aufgabe scheiterst (es scheint ja sehr eilig zu sein), würde ich es einfach mal so versuchen, wie du es vorgeschlagen hast. Dann siehst du ja, ob's klappt oder nicht und wie die RAM-Auslastung und ähnliches verläuft.
|
Re: Automatisieren von Web-Aktualisierungen
ODer ich nehme 50 Komponenten und sage dass das Programm nur 50 Links verträgt.
Ist dann doch besser als die Dinger dynamisch zu erstellen. Selbst dann ist es wahrscheinlich äußerst instabil, oder? Danke für deine Hilfe! Yo, es ist eilig! Leider. |
Re: Automatisieren von Web-Aktualisierungen
Da würde ich es auf alle Fälle dynamisch erstellen. Du bist dann doch viel flexibler und bei zukünftigen Anpassungen ist das wichtig.
Der Aufwand ist auch deutlich geringer als wenn du da nun 50 Komponenten abzählst und die IDE evtl. lange zum Wechseln in die Formularansicht braucht. Wenn weniger als 50 Links eingegeben werden, sind bei deinem Vorhaben Komponenten überflüssig und benötigen wieder mehr Speicher. Möchte man mehr als 50, dann hat man Pech. So hast du ein Array und die Schleife, das war's. |
Re: Automatisieren von Web-Aktualisierungen
Okay...dann mache ich es so.
Danke nochmal. |
Re: Automatisieren von Web-Aktualisierungen
Hallo,
am Wochenende hab' ich mir die JVCL installiert und dort mal gestöbert. Unter \JVCL\examples\JvUrlListGrabber gibt es ein Programm, das Linklisten abarbeiten kann. Das könnte für die ein passender Denkanstoß sein. |
Re: Automatisieren von Web-Aktualisierungen
Danke, hab ich mir angesehen, ist nicht ganz so einfach dieses Thema.
|
Re: Automatisieren von Web-Aktualisierungen
..dankeschön für deine Antwort.
|
Alle Zeitangaben in WEZ +1. Es ist jetzt 05:49 Uhr. |
Powered by vBulletin® Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024-2025 by Thomas Breitkreuz