Zamanlanmış Görevler
jekcms bütün arka plan işini tek bir giriş noktasından yürütür: cron.php. Her çalışmada önce bir kilit alır (üst üste binen çalışmalar çakışmak yerine atlanır), sonra yerleşik görev listesini sırayla işler ve tek seferlik görev kuyruğunu boşaltır. Görevleri siz yapılandırmazsınız — ürünle birlikte gelirler ve her biri kendini korur (bir işi yapmadan önce yapacak bir şey var mı diye bakar).
Bu sayfa nelerin çalıştığını, görevlerin kuyruğa nasıl girdiğini ve çalıştırıcının nasıl tetiklendiğini anlatır. Gerçek cron kuramıyorsanız (ya da kurmak istemiyorsanız) Cron Kurulumu sayfasına bakın — zamanlanmış yayın, yerleşik ziyaretçi-tetikli zamanlayıcı sayesinde hiç cron olmadan da çalışır.
Yerleşik görevler
Her cron.php çalışması şunları sırayla işler:
- Zamanlanmış yazıları yayınla — yayın saati geçmiş yazılar
scheduleddurumundanpublisheddurumuna geçer - Tek seferlik görev kuyruğu —
scheduled_taskstablosundaki bekleyen satırlar çalıştırılır (aşağıda) - İçerik kuyruğu — İçerik Stüdyosu kuyruğunda vakti gelen öğeler yayınlanır; otomatik eşitleme açıksa kuyruk doldurulur
- Oturum temizliği — süresi dolmuş oturumlar silinir
- Otomatik bakım — Ayarlar'daki seçimlerinize göre önbellek/log bakımı
- Önbellek temizliği — bayat önbellek kayıtları süpürülür
- Sosyal/webhook kuyruğu — bekleyen giden kuyruk öğeleri işlenir
- Site haritası yenileme — son üretimden bu yana yazı değiştiyse
sitemap.xmlyeniden kurulur
Çalışmanın sonucu JSON olarak döner (görev başına bir kayıt: başarı, adet, hata) — elle tetiklediğinizde yanıtı okuyarak tam olarak ne olduğunu görebilirsiniz.
Tek seferlik görev kuyruğu
scheduled_tasks tablosu hafif bir iş kuyruğudur: her satırda bir type, JSON payload, scheduled_at zamanı ve durum vardır (pending → processing → completed/failed; başarısızlıkta error_message saklanır). Desteklenen türler arasında email, webhook (bir URL'ye payload POST'lar), social_post, pinterest_post, ai_content, fetch_trends, generate_video ve cleanup bulunur.
Satırları ürün özellikleri oluşturur — örneğin İçerik Stüdyosu'nun paneli content_generation işlerini kuyruğa yazar; bekleyen öğeleri o ekranlardan erteleyebilir ya da silebilirsiniz. Ayrı bir görev-yönetim ekranı yoktur; kuyruk, bu özelliklerin paylaştığı bir iç mekanizmadır. Geliştiriciler aynı kolonlarla doğrudan satır ekleyebilir; bir sonraki cron çalışması onları alır.
Çalıştırıcıyı tetiklemek
İki yol:
- CLI (gerçek cron'un çağırması gereken):
php /kurulum/yolu/admin/cron.php
- HTTP — config'inizde
CRON_SECRETtanımlayın, sonra:
https://siteniz.com/admin/cron.php?key=CRON_SECRET_DEGERINIZ
Geçerli anahtar olmadan uç 403 Access denied döner. Bu yol, kabuk erişimi olmayan hosting'lerde dış cron servisleri (cron-job.org gibi) için kullanışlıdır.
Cron kurulumu
cPanel / hPanel
Advanced → Cron Jobs → Add New Cron Job:
*/5 * * * * /usr/bin/php /kurulum/yolu/admin/cron.php >/dev/null 2>&1
/kurulum/yolu/ kısmını kendi kök dizininizle değiştirin. Bazı hosting'ler PHP'nin tam yolunu ister — kabukta which php çalıştırın ya da /usr/local/bin/php deneyin.
Düz Linux (crontab)
crontab -e
Ekleyin:
*/5 * * * * cd /var/www/jekcms && /usr/bin/php admin/cron.php >> logs/cron.log 2>&1
Windows Görev Zamanlayıcı
Temel görev oluşturun → tetikleyici günlük, 5 dakikada bir yinele, süre 24 saat → eylem: C:\xampp\php\php.exe programını C:\xampp\htdocs\jekcms\admin\cron.php argümanıyla başlat.
Cron gerçekten çalışıyor mu?
HTTP ucunu CRON_SECRET ile bir kez tetikleyip JSON'u okuyun: her görev başarıyı ya da hatayı raporlar. Gerçek cron ölü görünüyorsa şunlara bakın:
- Cron işi kurulu mu?
crontab -l - PHP ikili yolu doğru mu?
- Hata çıktısı var mı? Log dosyasına yönlendirin (
>/dev/null'ı kaldırın) ve okuyun - Unutmayın: gerçek cron yokken ziyaretçi-tetikli zamanlayıcı yine de zamanlanmış yazıları yayınlar — bkz. Cron Kurulumu