Merhaba,
yazacağım bir scriptte zamanlanmış görev kullanmak istiyorum.Araştırdığım kadarıyla cron yapılacak işlemin bulunduğu sayfayı ziyaret edilerek o kodların işlenmesini sağlıyor.
Ben bu zamanlanmış görevlerin zamanlarınında mysqldan alınarak işlem yapılmasını sağlayabilmek istiyorum.
Bu konuda bilgi sahibi olanlar kısa kod yazarsa hem ben hemde bilmeyenler açısından yararlı olur.
Saygılarımla.
cron zamanlanmış görev
5
●1.828
- 25-09-2009, 17:49:54Üyeliği durdurulduburock3699 adlı üyeden alıntı: mesajı görüntüle
önemli değil bu konuda eksiklikler var internette tam anlatan yok umarım bilen birisi anlatır.
- 25-09-2009, 18:56:29bi 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. - 25-09-2009, 19:21:24Üyeliği durduruldubunun için hazır crontab sınıflarını kullanabilirsin. linuxun gerçek zamanlı cronuna kaydeder. İşine yarayacak bir sınıf;
crontab (cron, schedule, crontab, scheduler) - PHP Classes
önemli değil bu konuda eksiklikler var internette tam anlatan yok umarım bilen birisi anlatır.