Görev Yönetimi Kancaları
Operatörün zamanlanmış görevlere elle müdahale ettiği sekiz kanca: elle çalıştırma, açıp kapatma, kuyruk temizliği ve acil durdurma.
Genel Bakış
Önceki makaledeki kancaların aksine bunlar panelden başlar: karşıda bir operatör vardır ve mesajınızı okur.
İkisi özellikle ağırdır. Acil durdurma bütün otomasyonu kapatır; kuyruk temizliği ise geçmişi siler ve neyin ne zaman koştuğunu bir daha göremezsiniz.
Referans
Elle çalıştırmayı izleme
Operatör bir görevi elle tetikledikten sonra çalışır. Görev bu noktada kuyruğa girmiştir, henüz koşmamıştır.
Hook::add('action:cron.task_run_now', 10, function ($task, $job_id) {
// Is KUYRUGA girdi, henuz kosmadi: sonuc icin job.processed kancasina bakin.
Audit::manualRun($task, (int) $job_id);
});Görevin açılıp kapanmasını izleme
Tek bir görev etkinleştirilip pasifleştirildikten sonra çalışır.
Hook::add('action:cron.task_status_changed', 10, function ($task, $enabled) {
// Kapatilan gorev sessizce durur: kritik olanlari kayda gecirin.
if (!$enabled && Acme::criticalTask($task)) Ops::alert('task-off', $task);
});Acil durdurmayı engelleme
Bütün otomasyon kapatılmadan önce çalışır. Bu kanca yalnız kapatma yönünde çalışır.
Hook::add('gate:cron.kill_switch_disable', 10, function ($enabled, $pending_count) {
// Bekleyen is cok iken kapatmak birikmeyi buyutur.
if ($pending_count > 500)
return 'Bekleyen is sayisi yuksek; once kuyrugun bosalmasini bekleyin.';
return null;
});Kuyruk temizliğini durdurma
Kuyruk geçmişi silinmeden önce çalışır. Saklama süreleri duruma göre ayrıdır.
Hook::add('gate:cron.cleanup_run', 10,
function ($completed_days, $cancelled_days, $failed_days) {
// Basarisiz isleri erken silmek sorunun kanitini yok eder.
if ($failed_days < 30) return 'Basarisiz kayitlar en az 30 gun saklanmalidir.';
return null;
});Temizliğin sonucunu izleme
Kuyruk temizliği bittikten sonra çalışır.
Hook::add('action:cron.queue_cleaned', 10, function ($deleted, $breakdown) {
// Silinen basarisiz kayit cok ise bir sorunun izi gitmis demektir.
if ((int) ($breakdown['failed'] ?? 0) > 100)
Ops::warn('cron-failures-purged', (int) $breakdown['failed']);
});İşe müdahaleyi izleme
Operatör kuyruktaki bir işe elle müdahale ettikten sonra çalışır.
retry, cancel, force_reclaim, delete. Dördü çok farklı şeydir; türü okumadan tepki vermeyin.cron, module, notification. Üç ayrı kuyruk vardır; hepsi bu kancadan geçer.Hook::add('action:cron.job_intervened', 10, function ($action, $queue, $id) {
// force_reclaim, takilmis bir isi geri alir: bu tekrar calismasi demektir.
if ($action === 'force_reclaim') Ops::note('job-reclaimed', $queue, (int) $id);
});Kesinti sonrası dönüşü yakalama
Sistem, görevlerin uzun süre koşmadığını fark ettiğinde çalışır.
gap_hours, gap_seconds, last_seen. Boşluk uzunsa bu süredeki yenilemeler, askıya almalar ve faturalar gecikmiş demektir.Hook::add('action:cron.restore.detected', 10, function ($restoreInfo, $workerId) {
// Bosluk boyunca yenileme ve askiya alma gecikti: birikmeyi kontrol edin.
Ops::alert('cron-gap', (float) ($restoreInfo['gap_hours'] ?? 0));
});Görev listesini değiştirme
Görev özeti panelde gösterilmeden önce çalışır.
Hook::add('filter:cron.task_overview', 10, function (&$tasks) {
// Listeye eklemek gorevi CALISTIRMAZ; kayit register:cronjobs ile yapilir.
$tasks = array_filter($tasks, fn ($t) => !Acme::hidden($t['key'] ?? ''));
});Tuzaklar
Elle başlatma kancası size kuyruk kimliği verir: iş sıraya girmiştir, henüz koşmamıştır. Sonucu burada beklemek boşunadır; işin gerçekten ne yaptığını işlendi kancası söyler.
Kuyruk temizliği başarısız kayıtları da siler ve o kayıtlar bir sorunun tek izidir. Saklama sürelerini kısaltmak, ertesi gün "neden çalışmamış?" sorusunu cevapsız bırakır. Kapıda başarısız kayıtların süresini koruyun.
Yeniden deneme, iptal, geri alma ve silme aynı kancadan geçer ve sonuçları taban tabana zıttır. Türü okumadan yazılan bir dinleyici, iptal edilen bir işi yeniden başlatılmış sanabilir. Ayrıca üç ayrı kuyruk vardır; ikinci parametre hangisinde olduğunuzu söyler.
Görev listesi filtresi yalnız panelde görüneni değiştirir. Kendi göreviniz oraya eklendiği için çalışmaz; çalışması için kayıt kancasıyla tanıtılması gerekir. İkisini karıştırmak, panelde duran ama hiç koşmayan bir kart bırakır.
İlgili Makaleler
- Cron Tur Kancaları
- Zamanlanmış Görev Kancaları
- Yönetim Paneli Kancaları
Geri bildiriminiz için teşekkürler!
Yukarıda bulamadığınız her şey için destek ekibimiz her zaman yanınızda.