Du befindest Dich im Archiv vom ABAKUS Online Marketing Forum. Hier kannst Du Dich für das Forum mit den aktuellen Beiträgen registrieren.

Multitasking und PHP

Ajax, Hijax, Microformats, RDF, Markup, HTML, PHP, CSS, MySQL, htaccess, robots.txt, CGI, Java, Javascript usw.
Neues Thema Antworten
Wirths Media
PostRank 9
PostRank 9
Beiträge: 2050
Registriert: 20.09.2004, 20:25

Beitrag von Wirths Media » 11.06.2007, 16:38

Hallo,

ich weiß PHP ist im eigentlichen sinne nicht Multitasking fähig, ich möchte auch nur mehrere Domains gleichzeitig auslesen, um die Wartezeit etwas zu reduzieren.

Ist so etwas in PHP möglich? mehrere Domains gleichzeitig auslesen?!

CURL soll so etwas können, jedoch habe ich kein passendes Beispiel gefunden.

Hat jemand ein Beispiel für mich oder alternativen?


Gruß
Daniel

Anzeige von ABAKUS

von Anzeige von ABAKUS »

SEO Consulting bei ABAKUS Internet Marketing
Erfahrung seit 2002
  • persönliche Betreuung
  • individuelle Beratung
  • kompetente Umsetzung

Jetzt anfragen: 0511 / 300325-0.


semtex
PostRank 6
PostRank 6
Beiträge: 381
Registriert: 25.04.2007, 22:50

Beitrag von semtex » 11.06.2007, 17:21

Was möchtest Du den auslesen? Die Anzahl der Buchstaben :) oder eventuell die Denicdaten, oder vielleicht sogar nur die Google Ergebnisse.
Ich kann mir unter Deiner deklaration "auslesen" nichts vorstellen.

Wirths Media
PostRank 9
PostRank 9
Beiträge: 2050
Registriert: 20.09.2004, 20:25

Beitrag von Wirths Media » 11.06.2007, 17:24

Ich möchte eine/mehrere HTML Seite/n auslesen.

Rob-oter
PostRank 1
PostRank 1
Beiträge: 7
Registriert: 15.04.2007, 13:18

Beitrag von Rob-oter » 11.06.2007, 17:40

Du kannst einfach mehrere Instanzen des Scripts aufrufen.

Ums noch einfacher zu machen: Bau ein Script das einige Instanzen mit exec('php scriptname.php'); aufruft.

godzilla
PostRank 4
PostRank 4
Beiträge: 104
Registriert: 28.05.2005, 21:29
Wohnort: Pilsting

Beitrag von godzilla » 13.06.2007, 01:38

exec('php scriptname.php');
genau mach das!
und scher dich dabei einen Dreck um die Sicherheit

auftragslinker
PostRank 7
PostRank 7
Beiträge: 525
Registriert: 21.04.2005, 14:36

Beitrag von auftragslinker » 13.06.2007, 07:02

baue ein perl oder php skript dafür und richte einen cronjob ein. lass den skriptaufruf aber nicht über root, sondern über einen normalen user laufen.

Poper
PostRank 1
PostRank 1
Beiträge: 6
Registriert: 27.01.2005, 13:37

Beitrag von Poper » 13.06.2007, 11:42

Hi Daniel,

schau dir doch mal PHP Multiplexed I/O an.
https://www.phpclasses.org/browse/package/3825.html

Gruß Axel (8
Bild

Troll
PostRank 5
PostRank 5
Beiträge: 274
Registriert: 11.05.2006, 17:51
Wohnort: Schwabenland

Beitrag von Troll » 13.06.2007, 12:16

Echtes Multitaskin´g gibt es in PHP nicht. In Deinem Fall reicht es schon aus sowas über Flags zu lösen.

Im Detail: Alle zu durchforschende URL's in ein Array schreiben -> Analog dazu jedem einen Statusflag vergeben (True/false). In einer Schleife dieses Array durchlaufen und bei "besetzt" einfach die nächste URL aufrufen. Wenn das ganze in einer Klasse abläuft, hast Du minimale Wartezeiten. Aber beachte bitte die Leistung Deines Servers.

seikodäd
PostRank 4
PostRank 4
Beiträge: 165
Registriert: 21.02.2006, 22:37
Wohnort: Debuggingen

Beitrag von seikodäd » 13.06.2007, 12:17

wenn schon, dann "multithreading"... gibts aber auch ned in php.

auftragslinker
PostRank 7
PostRank 7
Beiträge: 525
Registriert: 21.04.2005, 14:36

Beitrag von auftragslinker » 13.06.2007, 12:27

Troll hat geschrieben:Echtes Multitaskin´g gibt es in PHP nicht.
logisch. multitasking und multithreading sind betriebssystemsfunktionen. aber wenn ein os multitasking unterstützt (so ziemlich jedes modernere windows und linux), kann man darauf mit jeder programmier-/skriptsprache ein skripts schreiben, dass mehrfach aufgerufen wird und gleichzeitig läuft. sind halt nur zwei instanzen notwendig.


@seikodäd: multitasking war schon richtig in dem fall. multithreading geht noch ein stufe tiefer als die anwendungsebene.
Zuletzt geändert von auftragslinker am 13.06.2007, 13:59, insgesamt 1-mal geändert.

seikodäd
PostRank 4
PostRank 4
Beiträge: 165
Registriert: 21.02.2006, 22:37
Wohnort: Debuggingen

Beitrag von seikodäd » 13.06.2007, 13:10

@aftragslinker, da muss ich dir aber widersprechen 8)

multitasking ist die fähigkeit eines betriebssystems, mehrere prozesse gleichzeitig auszuführen. die einzelnen prozesse haben dabei alle einen eigenen adressraum im arbeitsspeicher. dabei kann ein prozess niemals auf den speicherbereich eines anderen direkt zugreifen, was das multitasking vom multithreading u.a. unterscheidet. multitasking bezieht sich außerdem immer (!) auf das betriebssystem.

multithreading ist die fähigkeit eines vom betriebssystem gestarteten prozesses, mehrere aufgaben (threads) gleichzeitig auszuführen. einzelne threads können dabei sehr wohl den selben speicherbereich miteinander teilen (z.b. die selben variablen und methoden).

s. auch https://www.jguru.com/faq/view.jsp?EID=211169

Anonymous

Beitrag von Anonymous » 13.06.2007, 13:20

hmm... wenn ich hier in diesem Forum also an mehreren Threads gleichzeitig arbeite, wäre dies Multithreading, da ja jedesmal die selben userdaten von mir verwendet werden... logisch, soweit klar...

wenn ich jetzt aber hier einen thread und in einem anderen forum einen thread gleichzeitig bearbeite wäre es dann multitasking, da die beiden Foren keine möglichkeit auf die datenbank des anderen zuzugreifen... oder?

hmm... aber hab da doch dann auch mehrere threads offen... wäre es dann nicht doch multithreading?

:roll:

seikodäd
PostRank 4
PostRank 4
Beiträge: 165
Registriert: 21.02.2006, 22:37
Wohnort: Debuggingen

Beitrag von seikodäd » 13.06.2007, 13:39

:D

auftragslinker
PostRank 7
PostRank 7
Beiträge: 525
Registriert: 21.04.2005, 14:36

Beitrag von auftragslinker » 13.06.2007, 13:48

seikodäd hat geschrieben: multitasking ist die fähigkeit eines betriebssystems, mehrere prozesse gleichzeitig auszuführen. die einzelnen prozesse haben dabei alle einen eigenen adressraum im arbeitsspeicher. dabei kann ein prozess niemals auf den speicherbereich eines anderen direkt zugreifen, was das multitasking vom multithreading u.a. unterscheidet. multitasking bezieht sich außerdem immer (!) auf das betriebssystem.

multithreading ist die fähigkeit eines vom betriebssystem gestarteten prozesses, mehrere aufgaben (threads) gleichzeitig auszuführen. einzelne threads können dabei sehr wohl den selben speicherbereich miteinander teilen (z.b. die selben variablen und methoden).
damit widersprichst du mir aber nicht. es war hier nie die rede davon, dass der speicherbereich des prozesses geteilt werden muss. ich kann den internet explorer so oft aufmachen wie ich will (theoretisch) genausogut kann ich ein php-skript, dass ein aus einem verzeichnis zufällig gewähltes png in ein jpg umwandelt und dann löscht mehrfach aufrufen, sodass der vorgang gleichzeitig mehrfach ausgeführt werden kann. das ist multitasking.

sicher kann ich auch ein programm mehrere threads starten lassen, die parallel an dieser aufgabe arbeiten, aber war das die frage?

wenn eine datenbank benutzt wird, würde das gehen. einfach ein bearbeitungsstatusflag einsetzen.

seikodäd
PostRank 4
PostRank 4
Beiträge: 165
Registriert: 21.02.2006, 22:37
Wohnort: Debuggingen

Beitrag von seikodäd » 13.06.2007, 13:56

es ist schlicht und einfach die definition von "multitasking", die festlegt, dass es sich dabei um eine eigenschaft des betriebssystems handelt, mehrere prozesse gleichzeitig ausführen zu können. mehr gibt es dazu eigentlich nicht zu sagen... :wink:

Antworten