28. april 2004 - 02:01
Der er
5 kommentarer
hvordan laver mand delay
jeg har et lille point sytem men jeg vil godt ha lidt "delay"
Fx
mysql
navn password point money
kasper *** 5 10
kasper køber 1 point kl 2004-04-27 19:00:00
men han skal ikke få den får en time efter det vil sige
2004-04-27 20:00:00
28. april 2004 - 02:58
#1
<ole>
Det kræver, man kan køre cronjobs på serveren. Snak med din udbyder og hør, om du kan få lov - og om hvordan du gør det :)
/mvh
</bole>
28. april 2004 - 08:40
#2
Eller at du har en ekstra tabel hvor du noterer hvornår nogle points må ligger til en konto - f.eks.
kasper, 2004-04-27 20:00:00, 1
Det første kald efter kl. 20:00 ligger så kasper ene point til hans konto.
28. april 2004 - 14:09
#4
Nu ved jeg ikke, hvor nøjagtig det skal være en time efter, at pointene tildeles - og hvor mange sidevisninger, du har. Hvis der er mange sidekald, kommer der også mange database kald og så kan et pseudo-cronjob, som sone foreslår, godt blive lidt af en belastning. Derudover er det en fin løsning, da man mange steder ikke kan få lov til at afvikle cronjobs.
Hvis du kan nøjes med at checke f.eks. hvert 10. minut, om nogen skal have tildelt points, kan du bruge et script, jeg engang lavede.
Du opretter en mappe, der hedder 'pseudocron'. I den lægger du en fil med de funktioner, der skal afvikles:
<?
function noget() {
// Kode
}
function noget_andet() {
// Kode
}
noget();
noget_andet();
?>
Kald filen 'cron_funcs.php'. Ved siden af den fil lægger du en fil, der hedder 'cron.inc.php' og har dette indhold:
<?
$cron_intval = 10; // minutes
$cron_funcs_fname = "cron_funcs.php"; // Functions goes here
$cron_path = $_SERVER["DOCUMENT_ROOT"]."/pseudocron/"; // Path to this folder
$cron_fname = "cron_stamp.php";
$cron_stamp = 0;
if ( is_file($cron_path.$cron_fname) ) {
include($cron_path.$cron_fname);
}
$cron_now = time();
if ( $cron_now>$cron_stamp+(60*$cron_intval) ) {
include( $cron_path.$cron_funcs_fname );
$fp = fopen($cron_path.$cron_fname, "w");
fwrite($fp, "<?\$cron_stamp = ".$cron_now.";?>");
fclose($fp);
}
?>
Nu kan du inkludere filen i alle dine sider med:
include("pseudocron/cron.inc.php");
og dine funktioner bliver afviklet hvert 10. minut.
/mvh