PDA

Archiv verlassen und diese Seite im Standarddesign anzeigen : Wie werden Aufgaben gestartet?


Nils Dornblut
13.05.2007, 16:13
Hallo,

wie werden genau die zeitgesteuerten Aufgaben gestartet? Soweit ich informiert bin, geschieht das über den footer? Löst jeweils der erste User immer die Aufgabe aus oder gibt es hier irgendwelche Einschränkungen?

Über die Suchfunktion konnte ich leider nichts passendes finden.

Viele Grüße

Nils Dornblut

Pathor
13.05.2007, 16:14
Ja, über den Footer ($cronimage).

Wenn die Zeit gekommen ist, wird eine Bildvariable freigegeben. Der erste User, der dieses unsichtbare Bild lädt, löst die Aufgabe aus.

Nils Dornblut
13.05.2007, 18:44
Hallo Pathor,

aber welchen Bedingungen unterliegt das? Es kann ja sein, dass mehrere Aufgaben anstehen. Werden die gleichzeitig oder nacheinander angestoßen? Wie sind die Prioritäten. Wird in jedem Fall durch das einmalige Laden der Übersicht ein Job angestoßen? Kann man einen Job auch per Cronjob starten (Bilder werden bei Cronjobs nicht unbedingt mit aufgerufen)?

Viele Grüße

Nils Dornblut

Pathor
13.05.2007, 20:20
Richtige Cronjobs kann das vB leider nicht. Es läuft alles über das im footer befindliche $cronimage.
Den Anstoß machen immer die User oder Gäste beim surfen (wenn ein Job ansteht, wird das cronimage aufgerufen). Wie das prioritätsmäßig läuft, weiß ich nicht. Ich vermute einfach mal, dass alles gleichzeitig ausgeführt wird.

Nils Dornblut
13.05.2007, 20:39
Hallo Pathor,

die Grundsätze solche Aktionen sind mir schon klar. Ich wollte ja gerade die Besonderheiten wissen. Soweit ich das vorhin analysiert habe, wir nicht alles gleichzeitig ausgeführt, was auch ganz gut so ist. Manchmal macht er aber auch 2 Aufgaben zum gleichen Zeitpunkt. Eben dieses genaue Verhalten hätte mich interessiert.

Danke für die Hilfe :)

Viele Grüße

Nils Dornblut

Pathor
13.05.2007, 22:04
Meinst du vielleicht das?

5421

Das sind einfache Croneinstellungen. Siehe -> http://en.wikipedia.org/wiki/Crontab

Mystics
13.05.2007, 23:36
Pro Aufruf wird eine Aufgabe gestartet. Wenn nun also zwei Aufgaben anstehen, wird beim ersten Aufruf von $cronimage die erste Aufgabe gestartet, beim zweiten Aufruf die zweite Aufgabe usw. Wenn keine Aufgabe ansteht, wird $cronimage gar nicht erst geladen.

thompson
27.12.2007, 17:29
sorry, dass ich das thema nochmals aufgreife.

wenn der user die crons dann startet, kann es da bei groessere foren zu performanceproblemen kommen bzw. zu laengeren ladezeiten von beitraegen ?

Pathor
27.12.2007, 19:10
Kommt ganz auf die Aufgabe an. Wenn nur nen paar temporäre Sachen gelöscht werden, sollte man nix merken. Werden jedoch die Hits der Themen neu geschreiben, kann es je nach größe des Forums (viele Foren und viiieeelllle aktuelle Themen) und der eingesetzten Serverhardware Performanceeinbrüche geben.

Nils Dornblut
27.12.2007, 19:25
Hallo thompson,

aus diesen Gründen halte ich solche Aufgaben möglichst klein und begrenze die zu bearbeitenden Datensätze. Ganz vermeiden kann man lastintensive Dinge zwar so nicht, aber zumindest möglichst sicher steuern.

thompson
27.12.2007, 19:36
und wie begrenzt du die ?

Andreas
27.12.2007, 19:47
Richtige Cronjobs kann das vB leider nicht.
Das ist so nicht ganz richtig.

Man kann die vB-Cronjobs durchaus über 'richtige' cronjobs ausführen; dies Möglichkeit ist sogar bereits tlw. vorgesehen - aber nicht dokumentiert.


http://www.vbulletin-germany.com/forum/showthread.php?p=128872

Nils Dornblut
19.01.2008, 11:16
und wie begrenzt du die ?Ich programmiere die Scripte so, dass man die Anzal der Datensätze, die bearbeitet werden, einstellen kann. Natürlich muss man den Wert dann noch irgendwo speichern (Testdatei oder DB z.B.). Dann integriere ich einen Debug-Modus, der die Laufzeit misst. Anschließend starte ich den Job dann über das vB-Admin manuell und sehe die Laufzeit. Ich versuche mich da auch bei aufwendigen Dingen (wir gleichen z.B. die User ständig mit einer internen Datenbank ab) unter einer halben Sekunde zu halten. Alternativ dann halt weniger Datensätze einstellen oder die Hardware ändern (was bei Dir vielleicht etwas komplexer sein dürfte).

Grüße und sorry für die lange Antwortzeit

Nils