PDA

Archiv verlassen und diese Seite im Standarddesign anzeigen : Ralley Crons ausführen



nadja2303
10.04.2009, 12:27
Hallo erstmal

Ich habe ein kleines problem:
Bei den Ralleys kann man ja unten "auswerten" drücken,
aber das ist kein Link, d.h. ich kann es auf Cronjobs nicht verlinken.
Gibt es trotzdem eine Möglichkeit es über Crons auszuführen?

jpwfour
10.04.2009, 12:34
Nur wenn du 'ne Cron Datei dazu hast, oder dir selber erstellst.

(Bzw. über Umwege auch Möglich, via Cron das "Drücken des Auswerten" Knopfes direkt zu automatisieren, aber soll ja jetzt nicht zu komplex werden)

Wenn Cron Datei dabei (bspw. bei Stigma Taggamerallye), sollte nach der Installation der Rallye der Link dazu unter "Crons" auftauchen.

Wenn nicht, musst du nur ne neue Datei erstellen, und dort den Teil reinkopieren, der ausgeführt wird nach "Drücken des auswerten Buttons" :wink:

nadja2303
10.04.2009, 12:43
        
<input type="Submit" name="auswerten" value="Auswerten">
</div>
</form>


Was soll davon in den Crone rein,
oder kannst du mir einmal eine Beispieldatei machen?

danke

jpwfour
10.04.2009, 12:50
Bsp. die AKtivrallye ausm VMS1:

aktiv.php:


<?php

$rp = 0;

$ralleydaten = mysql_fetch_array(db_query("SELECT * FROM ".$db_prefix."_ralleydaten WHERE ralley='aktivralley' LIMIT 1"));

// Ralleystand reseten
if ($_POST['reset'] == 'Reseten') {
db_query ("DELETE FROM ".$db_prefix."_aktivralley");
}

// Ralley auswerten
if ($_POST['auswerten'] == 'Auswerten') {
$platz = db_query("SELECT * FROM ".$db_prefix."_aktivralley WHERE punkte > '".$ralleydaten['pro']."' ORDER BY punkte DESC LIMIT ".$ralleydaten['plaetze']."");
while ($pa = mysql_fetch_array($platz)) {
$rp++;
$buchungssumme = $ralleydaten['p'.$rp];
// Buchungen durchführen
db_query("UPDATE ".$db_prefix."_aktivralley SET ausgezahlt = '".time()."' WHERE uid='".$pa['uid']."'");
$buchungs_id = create_code(14);
kontobuchung ('+',$buchungssumme,$pa['uid']);
buchungsliste ($buchungs_id,'+'.$buchungssumme,'Aktivralley (Platz '.$rp.')',$pa['uid']);
bilanz (0,$buchungssumme);
}
}
?>Neue Datei im Ordner crons estellen (***.php):


<?php

$rp = 0;

$ralleydaten = mysql_fetch_array(db_query("SELECT * FROM ".$db_prefix."_ralleydaten WHERE ralley='aktivralley' LIMIT 1"));

// Ralley auswerten
$platz = db_query("SELECT * FROM ".$db_prefix."_aktivralley WHERE punkte > '".$ralleydaten['pro']."' ORDER BY punkte DESC LIMIT ".$ralleydaten['plaetze']."");
while ($pa = mysql_fetch_array($platz)) {
$rp++;
$buchungssumme = $ralleydaten['p'.$rp];
// Buchungen durchführen
db_query("UPDATE ".$db_prefix."_aktivralley SET ausgezahlt = '".time()."' WHERE uid='".$pa['uid']."'");
$buchungs_id = create_code(14);
kontobuchung ('+',$buchungssumme,$pa['uid']);
buchungsliste ($buchungs_id,'+'.$buchungssumme,'Aktivralley (Platz '.$rp.')',$pa['uid']);
bilanz (0,$buchungssumme);
}

// Ralleystand reseten
db_query ("DELETE FROM ".$db_prefix."_aktivralley");
?>

Also nur ein bisschen umsortiert und die Bedingungen weg, da ja der Cron optimalerweise erst nach Rallyeende ausgeführt wird 1x

Dann noch in die Datenbank rein den Cron:


INSERT INTO vms_crons (cron,laufzeit,datei,bezeichnung) VALUES ("int_rallye",0,"crons/***.php","RallyeCron");

Hardy
16.04.2009, 21:09
Was ist wenn die aktivrally eigentlich noch nicht zu ende ist :biggrin1:

Dann wird diese trotzdem ausgewertet...

Wenn jemand so schlau ist und den cron nutzt und ihn eventuell täglich laufen lässt wird jedes mal ausgewertet und resettet

Rallef
16.04.2009, 21:19
Was ist wenn die aktivrally eigentlich noch nicht zu ende ist :biggrin1:

Dann wird diese trotzdem ausgewertet...

Wenn jemand so schlau ist und den cron nutzt und ihn eventuell täglich laufen lässt wird jedes mal ausgewertet und resettet


Du hast soeben die Tages-Aktiv-Ralley erfunden :biggrin1:

Lokutos
16.04.2009, 21:24
Was ist wenn die aktivrally eigentlich noch nicht zu ende ist :biggrin1:

Dann wird diese trotzdem ausgewertet...

Wenn jemand so schlau ist und den cron nutzt und ihn eventuell täglich laufen lässt wird jedes mal ausgewertet und resettet


die verbindung zur Datenbank besteht doch garnicht ???

erst wenn man sie über cron.php?id= aufruft und dann braucht es ja das passwort

jpwfour
16.04.2009, 22:37
Was ist wenn die aktivrally eigentlich noch nicht zu ende ist :biggrin1:...

War ja nur ein "Denkanstoss" :wink:

Optimalerweise hat man natürlich 1 Cron, der alle 15 Minuten läuft und alle beendeten Rallyes auswertet und nach einer Config-Tabelle dann auch automatisiert neu startet :yes:

Btw: Tagesaktivrallye: ich mein, da gibts schon eine von Stigma