Bu bileşen cron job ekleme ve silme gibi işler için kullanılır.
Cronjob ile ilgili sınıflar Anonym\Components\Cron
namespace içinde bulunur.
use Anonym\Components\Cron\BasicCron;
use Anonym\Components\Cron\Task;
$cron = new BasicCron();
Ekleyeceğiniz işleri direk terminal ile veya terminalde php üzerinden çağrılacak şekilde yapabilirsiniz.
Terminal komutu çağırmak:
$cron->event(function(){
return Task::exec('your exec command');
});
Php komutu çağırmak:
$cron->event(function(){
return Task::php('/var/www/html/test.php'); // call test.php
});
Eklediğiniz işler ön tanımlı olarak her dakika çalışacak şekilde ayarlıdır. Bunu düzenlemek için;
return Task::php('/var/www/html/test.php')
kodundan sonra daily
gibi methodları çağırabilirsiniz.
Örnek Olarak:
$cron->event(function(){
return Task::php('/var/www/html/test.php')->daily(); // call test.php everyday
});
Kullanabileceğiniz Değerler aşağıdaki gibidir
->everyMinute(); // her dakika yürütür
->everyFiveMinutes(); // her 5 dakikada bir yürütür
->everyTenMinutes(); // her 10 dakikada bir yürütür
->everyThirtyMinutes(); // her 30 dakikada bir yürütür
->hourly(); // her saat başı yürütür
->daily(); // her gün yürütür
->dailyAt('13:00'); // her günün girilen saatinde yürütür
->twiceDaily(1, 13); // her gün girilen saatlerde yürütür
->weekly(); // her haftanın başında yürütür
->monthly(); // her ayın başında yürütür
->weekdays(); // haftanın her günü yürütür
->sundays(); // sadece pazar günleri yürütür
->mondays(); // sadece pazartesi günleri yürütür
->tuesdays(); // sadece salı yürütür
->wednesdays(); // sadece çarşamba günleri yürütür
->thursdays(); // sadece perşembe günleri yürütür
->fridays(); // sadece cuma günleri yürütür
->saturdays(); // sadece perşembe günleri yürütür
->when(Closure); // girdiğiniz Closure fonksiyondan true döndüğü zaman yürütür // konsol üzerinde çalışır
Bu verileri arka arkayada çağırabilirsiniz.
when
methodu ile istediğiniz kontrolu yaptırabilirsiniz. Sadece Anonym Console üzerinde çalışır
$cron->event(function(){
return Task::php('/var/www/html/test.php')->daily()->when(function(){
return true;
});
});
Kontrolun başarılı olduğunun anlaşılması için
true
değeri dönmelidir.
$cron->run();
$job = Task::php('/var/www/html/test.php')->daily();
$cron->removeJob($job);
$cron->clean();
Konsol Uygulamasında Komut çağrılmadan önce ve sonra yapılacak işleri ayarlayabilirsiniz.
$schedule->event(function(){
echo 'hello world';
})->before(function(){
})->after(function(){
});