WebWork Magazin - Webseiten erstellen lassen, Online Medien, html

Webhoster, Webhosting Provider und Domain registrieren

Home | Registrieren | Einloggen | Suchen | Aktuelles | GSL-Webservice | Suleitec Webhosting
Reparatur-Forum | Elektro forum | Ersatzteilshop Haushalt und Elektronik



Im Homepage und Webhosting-Forum --- per zeit eine action starten

Scripte und Programme für PHP, MYSQL. Diskussionen zur Programmierung im Web. Fragen zu CMS, Blogsoftware, Shops, Newsletter und vielen weiteren Scripten.

Forum » PHP & MySQL » per zeit eine action starten - 23 Nov 2024 Antworten
per zeit eine action starten
subjective
Forenheld




Beiträge: 844

Unsauber - funktioniert auch nicht unter allen Bedinungen. Wenn es zB ein Rundenbasiertes Spiel ist hast du eventuell gleich zwei Probleme.

1. Rechenaufwand. - der Abschluß der Runde erfordert meist eine Menge Aktionen.
2. Benachrichtigung der User - wenn du zB E-Mails über den Ausgang des "Kampfes" versenden willst, muss dies direkt nach der angesetzten Zeit passieren.

Ein Cronjob löst diese beiden Probleme, da der Aufruf seperat von den eigentlichen Seitenaufrufen der Besucher ist.

Was mir an deiner Lösung gar nicht zusagt ist das serialisierte Array für alle Cronjobs. Das (de)serialisieren von Daten ist Zeitaufwändig. Daher sollte es so selten wie möglich und/oder mit so wenig Daten wie möglich erfolgen.

Auch ein echter Cronjob sollte nur ein Script anstoßen, in welchem die notwendigen Aufgaben notiert sind (Ein solches Script kann eventuell auch vom Seitenaufruf ausgelöst werden). Diese sollten jedoch in einer echten DB-Struktur liegen (ID - ZEIT - DATA). DATA könnte das von dir angesprochene serialisierte Array sein, da die Daten je nach Aufgabe verschieden sind. Durch die Speicherung der einzelnen Aufgaben und der Zeit läßt sich jedoch sehr einfach und schnell prüfen ob Aufgaben anliegen, welche zum aktuellen Zeitpunkt ausgeführt werden müssen (SELECT COUNT(*) FROM aufgaben WHERE zeit < jetzt).

---
Weaverslave

  Profil   Website   Editieren   Zitieren
yogi
Otto-Normal-Poster




Beiträge: 66

Schlicht und einfach zu aufwendig.

Was spricht gegen einen Cronjob, der weit weniger Probleme verursacht, wie subjective schon angesprochen hat?

---
mfg
yogi

  Profil   Editieren   Zitieren
m[e]ntor
Pixelschubser




Beiträge: 2

Was dagegen sprich, wäre eigentlich nur, dass man nicht die Möglichkeit hat, selber cronjobs einzurichten. Deswegen wollte ich einfach nur eine andere möglichkeit aufzeigen, die ich selber einsetzen.

Gut, das ganze nicht für ein brwosergame, aber solange hier nicht mehr infos kommen, was eigentlich gemacht werden soll, kann man ja auch über andere möglichkeiten diskutieren.

Und so gross ist die datenmenge die (de)serialisiert nun auch nicht:

INSERT INTO `cache_table` VALUES ('cron_updates', 'a:1:{i:0;a:2:{s:8:"cron_key";s:19:"session_cron_delete";s:11:"cron_update";s:10:"1120175708";}}', 1);

ich rufe z.b. bei mir mit einer datenbankabfrage folgendes ab:

Benutzergruppen,Einstellungen,Cronjobs theoretisch noch mehr gecachte Daten.

Warum ich das so mache: optimierung und einsparung von Datenbankabfragen.

---
http://www.amp-lified.de

  Profil   Website   Editieren   Zitieren
yogi
Otto-Normal-Poster




Beiträge: 66

Cronjobs nicht selber einrichten?

Also mein Kollege machts selbst auf einem stinknormalem Webserver.
Natürlich muss der Zugriff via SSH erlaubt sein. Aber wenn man schonmal sowas aufwendiges programmiert, dass man Cronjobs braucht, kann man sich auch ruhig einen geeigneten Server suchen.

---
mfg
yogi

  Profil   Editieren   Zitieren
Thodi
Fachidiot
Threadstarter




Beiträge: 101

wenn ich ein cronjob mache was muß ich denn als if bedinung setzen weil ohne if startet er ja nach aufruf der seite

  Profil   E-Mail   Editieren   Zitieren
subjective
Forenheld




Beiträge: 844

Verglichen mit einer einzelnen Zahl ist die Datenmenge sehr groß. Wenn man nun überlegt das dies bei jedem Seitenauf passieren soll, ist es einfach unnötig. Man speichert die Zeit seperat und fertig. Dann übernimmt der DB-Server die ganze Arbeit direkt. Keine Deserialisierung und keine Schleife mehr nötig.

---
Weaverslave

  Profil   Website   Editieren   Zitieren
Thodi
Fachidiot
Threadstarter




Beiträge: 101

Danke für deine Antwort !

Wie kann ich das am besten machen?


  Profil   E-Mail   Editieren   Zitieren
subjective
Forenheld




Beiträge: 844

Habe ich doch schon ausführlich beschrieben?

---
Weaverslave

  Profil   Website   Editieren   Zitieren
Thodi
Fachidiot
Threadstarter




Beiträge: 101

Îch wollte fragen ob ich das dann per cronjob machen kann ?

  Profil   E-Mail   Editieren   Zitieren
subjective
Forenheld




Beiträge: 844

Es ist beides möglich - Cronjob wäre die bessere Lösung da die Last dann nicht im Request eines Besuchers anfällt. Zur Not geht auch die Ansprache per Seitenrequest - es wäre jedoch die deutlich weniger schöne Lösung.

---
Weaverslave

  Profil   Website   Editieren   Zitieren
Thodi
Fachidiot
Threadstarter




Beiträge: 101

Danke aber eins geht nicht,der cronjob startet aber führt das hier net aus.

session_start();

$verbindung = mysql_connect("datenbank","U","PW");
mysql_select_db("DB");


$member2 = mysql_query("SELECT * FROM login WHERE username = '$username' ");
$member = mysql_fetch_array($member2);

$wtime2 = $_REQUEST["wtime2"];
$bereit = $member[bereit] + 1;






$Los = "UPDATE login SET bereit = '$bereit' WHERE username LIKE '$username' LIMIT 1";
$los2 = mysql_query($Los);





?>

Das ist komisch.wenn ich die seite so aufrufe geht das

  Profil   E-Mail   Editieren   Zitieren
subjective
Forenheld




Beiträge: 844

Höchstwahrscheinlich ist $_REQUEST nicht gefüllt.

---
Weaverslave

  Profil   Website   Editieren   Zitieren
Korp
Otto-Normal-Poster




Beiträge: 57

subjective schrieb am 04.07.2005 15:26
Höchstwahrscheinlich ist $_REQUEST nicht gefüllt.


wenn nen cronjob mit sessions arbeiten würde^^
ich udn thodi habn nun eine andere lösung gefunden...

---
Interessen am PC:
html, web design, sql und php

  Profil   E-Mail   Website   Editieren   Zitieren
subjective
Forenheld




Beiträge: 844

Da ist unlogisch - ein Cronjob soll ja unabhängig vom Benutzer laufen. Also hat er weder eine Session, noch Benutzereingaben vom Browser.

Wenn ihr solche Daten nutzt, solltet ihr konzeptionell noch mal etwas nachgrübeln.

---
Weaverslave

  Profil   Website   Editieren   Zitieren
Thodi
Fachidiot
Threadstarter




Beiträge: 101

echt super forum klasse bekommt man gute hilfe lach

  Profil   E-Mail   Editieren   Zitieren
Seite 1 | 2 | 3 | 4  

Antworten
Forum » PHP & MySQL » per zeit eine action starten

Aktuelle Beiträge zur Hilfe im Forum für Homepage - per zeit eine action starten im Forum Homepage Hosting AntwortenLetztes Posting
Cybersicherheit für Unternehmen
in "PHP & MySQL"
3 18.11.2024 14:05 von Gaswer
Wirtschaftslage in der Ukraine
in "PHP & MySQL"
3 22.10.2024 15:04 von Gaswer
Rangliste (Ohne Mysql) (Kompliziertes Ordner System)
in "PHP & MySQL"
3 19.07.2021 06:00 von newtopblog
kleines problem mit phpadmin
in "PHP & MySQL"
5 11.04.2021 22:22 von Zavylon
Counter mit PHP
in "PHP & MySQL"
4 22.03.2021 16:29 von Robeni
Fehlermeldung beim Importieren der Datenbank in phpmyadmin
in "PHP & MySQL"
0 02.08.2019 22:14 von iFuchs
CMS für Online Shop
in "PHP & MySQL"
18 26.05.2019 13:29 von raiserle
Regestrierungproblem
in "PHP & MySQL"
3 28.11.2018 13:20 von norbertofahey
PHP Datum ausgeben?
in "PHP & MySQL"
1 19.10.2018 10:04 von Klaus1973
PHP befehl ausführen
in "PHP & MySQL"
11 16.08.2018 09:08 von Klaus1973
Visual Composer selber programmieren?
in "PHP & MySQL"
0 22.01.2017 23:45 von Redji



Besucher : 8127855    Heute : 250     Gestern : 761     Online : 187     23.11.2024    10:34      1 Besucher in den letzten 60 Sekunden        
alle 60.00 Sekunden ein neuer Besucher
Nach oben