bi tablo oluşturun,
id, eylem, aralik, soncalisma, sonraki
diye 5 tane alan olsun. son çalışma ve sonraki alanları int olsun timestamp kaydedelim. araliğa da saniye cinsinden veri girelim.
$suan=time();
$sorgu=mysql_query("SELECT * FROM cron WHERE sonraki<$suan");
while($veri=mysql_fetch_assoc($sorgu)) {
@mysql_query("UPDATE cron SET sonraki=soncalisma+aralik WHERE id=".$veri['id']);
$gecen_zaman=$suan - $veri['soncalisma'];
$kac_kez_calissin=floor($veri['aralik']/$gecen_zaman);
/* 5 dakkada bir çalışsın demişiz ama 15 dakka mı olmuş
o zman işimizi 3 kez yapsın diyoruz
Yani bu keyfi, kullanmasanız da olur */
eval($veri['eylem']);
}
bunu da dosya olarak kaydedip ister img src ile tetikleyin, ister script src, ister fopen ister başka bişey. Basit mantığı budur.
gerisi biraz teferruatlı ama yapılmayacak şeyler değil. mesela işlemin 2 kez üst üste yapılmaması için tablo kilitlenebilir, daha kısa işlemler yapılabilir, stored procedure kullanılarak select ve update procedure içinden daha kısa sürede yaptırılabilir vs. vs.vs.