📊 Blog AI Draft Sistemi Analizi

📅 Tarih: 2025-12-01 18:30 | 🎯 Tenant: ixtif.com (Tenant #2) | 👤 Talep: AI blog draft yeni üretmeme sorunu

🎯 Özet Durum

✅ Çalışan Sistemler

  • Blog Üretimi: Cron düzenli çalışıyor (bugün 8 blog üretildi)
  • Draft Pool: 66 unused draft mevcut (healthy threshold üzerinde)
  • Sistem Ayarları: Blog AI enabled, günde 4 blog hedefi aktif
  • Queue System: Horizon çalışıyor, job'lar işleniyor

❌ Tespit Edilen Sorun

Yeni Draft Üretimi Durmuş!

  • Son draft üretimi: 29 Kasım 2025, 21:09
  • Bugün (1 Aralık): 0 draft üretildi
  • Dün (30 Kasım): 0 draft üretildi
  • Draft regeneration threshold: 10 draft (çok düşük!)
  • Mevcut 66 draft → Regeneration tetiklenmiyor!

📊 Sistem İstatistikleri

Toplam Draft
120
Kullanılmamış Draft
66
Kullanılan Draft
54
Bugün Üretilen Blog
13

📅 Draft Üretim Geçmişi (Son 7 Gün)

Tarih Üretilen Draft Durum
2025-12-01 0 Üretilmedi
2025-11-30 0 Üretilmedi
2025-11-29 75 Toplu Üretim
2025-11-28 0 -
2025-11-27 45 Toplu Üretim

📝 Bugünkü Blog Üretim Zaman Çizelgesi

09:41 - 09:46 (5 dakika)
10 blog üretildi Anormal Hızlı
EP ve HELI karşılaştırma serisi + Kiralık ekipman serisi
12:03 - 12:06
2 blog üretildi Normal
Elektrikli transpalet, Fiyat rehberi
18:02
1 blog üretildi Cron Tetikleme
İstif makinesi kullanım alanları

🔍 Problem Analizi

1️⃣ Draft Regeneration Threshold Çok Düşük

Kod mantığı:

const MINIMUM_DRAFT_THRESHOLD = 10; const DRAFT_REGENERATION_COUNT = 100;

Sorun:

  • Mevcut unused drafts: 66
  • Regeneration trigger: ≤ 10
  • 66 > 10 → Draft regeneration tetiklenmiyor!

Günlük tüketim:

  • Hedef: 4 blog/gün
  • Gerçek: 8-13 blog/gün (manuel + otomatik)
  • 66 draft / 10 blog/gün = ~6 gün sürer
  • Threshold'a ulaşana kadar yeni draft üretilmeyecek!

2️⃣ Manuel Blog Üretimi Draft Tüketiyor

Gözlem:

  • Bugün toplam 13 blog üretildi
  • Cron tarafından: 8 blog (4 active hour × 1 blog)
  • Manuel üretim: ~5 blog (09:41-09:46 arasında)

Sonuç:

  • Admin panel'den manuel blog üretimi draft pool'u hızla tüketiyor
  • System draft tüketim hızını tahmin edemiyor

3️⃣ Cron Çalışıyor Ama Log Yazılmıyor

Test sonucu:

  • Manuel çalıştırma: ✅ Mükemmel çalışıyor
  • Log dosyası: ❌ "TENANT BLOG CRON" kaydı yok
  • Blog üretimi: ✅ Arka planda çalışıyor

Muhtemel sebep:

  • Log channel ayarı eksik
  • Ya da log rotation ile dosya adı değişiyor

💡 Çözüm Önerileri

✅ Öncelik 1: Draft Regeneration Threshold'u Artır

Önerilen değişiklik:

// ❌ Mevcut (çok düşük!) const MINIMUM_DRAFT_THRESHOLD = 10; // ✅ Önerilen (güvenli buffer) const MINIMUM_DRAFT_THRESHOLD = 30;

Mantık:

  • Günde ortalama 10 blog tüketiliyor (manuel + otomatik)
  • 30 draft = ~3 günlük buffer
  • Yeni 100 draft üretilirken sistem kesintisiz çalışır

Dosya: app/Console/Commands/GenerateTenantBlogs.php:46

✅ Öncelik 2: Proaktif Draft Üretimi (Haftalık Batch)

Strategi:

  • Her Pazar gece 02:00'de otomatik 200 draft üret
  • Draft pool her zaman dolu kalır
  • Threshold'a bağlı olmadan çalışır

Laravel Scheduler:

// app/Console/Kernel.php $schedule->command('generate:tenant-blogs --generate-drafts=200') ->weeklyOn(0, '02:00') ->name('weekly-draft-generation');

✅ Öncelik 3: Manuel Üretim Kontrolü

İki seçenek:

  • Seçenek A: Manuel üretimde draft kullanmayı disable et
  • Seçenek B: Manuel üretim sonrası otomatik draft regeneration tetikle

Önerilen: Seçenek B (kullanıcı deneyimini bozmaz)

🚀 Hemen Yapılacaklar

1. Acil Draft Üretimi (Şimdi)

Mevcut draft pool düşük, hemen 100 yeni draft üret:

php artisan tinker use Modules\Blog\App\Jobs\GenerateDraftsJob; use App\Models\Tenant; $tenant = Tenant::find(2); tenancy()->initialize($tenant); GenerateDraftsJob::dispatch(100)->onQueue('blog-ai'); tenancy()->end();

Süre: ~5-10 dakika

2. Threshold'u Güncelle

Dosya: app/Console/Commands/GenerateTenantBlogs.php

// Line 46 const MINIMUM_DRAFT_THRESHOLD = 30; // 10 → 30

3. Haftalık Cron Ekle

Dosya: app/Console/Kernel.php

Schedule bloğuna ekle (line ~170 civarı):

// Haftalık draft regeneration (Her Pazar 02:00) $schedule->call(function () { $tenants = \App\Models\Tenant::all(); foreach ($tenants as $tenant) { tenancy()->initialize($tenant); $enabled = getTenantSetting('blog_ai_enabled', '0'); if ($enabled === '1' || $enabled === 1) { \Modules\Blog\App\Jobs\GenerateDraftsJob::dispatch(200) ->onQueue('blog-ai'); } tenancy()->end(); } })->weeklyOn(0, '02:00')->name('weekly-draft-generation');

🎯 Beklenen Sonuç

Metrik Şu An Sonra
Draft Regeneration 66 draft'ta durmuş 30 draft'ta tetiklenir
Draft Pool Buffer ~6 gün ~3 gün (güvenli)
Otomatik Yenileme Threshold bazlı (reactive) Haftalık + Threshold (proactive)
Draft Pool 66 unused 100-200+ unused (her zaman dolu)