Ne işe yarar (iş diliyle)
Kullanıcı bir video/ses/belge yüklediğinde, dakikalar süren ağır işlemler (yazıya dökme, analiz, rapor) onu ekran başında bekletmeden arka planda yapılır. İş “kuyruğa” girer, sırası gelince işlenir, bittiğinde sonuç otomatik olarak panele düşer. Çok sayıda dosya aynı anda gelse bile sistem boğulmaz; her biri tek tek, kayıpsız işlenir. İş değeri: ağır AI işlerini güvenilir, ölçeklenebilir ve “kullanıcıyı bekletmeyen” bir hale getirir.
Hangi müşteri/projelerde işe yarar
Zaman alan herhangi bir arka plan işi olan her üründe: video/ses analizi, toplu belge işleme, rapor üretimi, toplu e-posta, görsel optimizasyonu, veri içe aktarma. Özellikle “kullanıcı yükledi, sonuç biraz sonra hazır olacak” mantığındaki her senaryoda hazır omurga. Somut örnekler: çağrı merkezi kayıt analizi, saha videosu işleme, sınav/eğitim videosu değerlendirme, toplu CV/başvuru işleme, podcast/altyazı üretimi.
Nasıl çalışır (kısa, sade)
Web tarafı işi tetikler → iş bir kuyruğa (Redis) yazılır → ayrı bir “worker” servisi sıradaki işi alır, çalıştırır → sonucu veritabanına yazar ve durumu (sırada / işleniyor / bitti / hata) günceller. Bir iş başarısız olursa otomatik olarak birkaç kez yeniden denenir.
Olgunluk
canlida-kanitlanmis — Aday’da üç ayrı pipeline (CV, mülakat, bağımsız video) aynı omurgayı paylaşıyor; 141 videoluk bir batch 0 hatayla işlendi. Taşınabilir; iş adımları projeye göre değiştirilir.
Teknik (geliştiriciler için)
aday · worker/tasks.py (process_application / process_session / process_video_analysis),
worker/celery_app.py, worker/listener.py (Postgres LISTEN/NOTIFY → Celery enqueue), worker/db.py.
Tetikleme: web pg_notify veya doğrudan tasks.<x>.delay(id). Girdi: kayıt id’si. Çıktı: DB’de durum +
sonuç JSON. Sınır: worker restart’ında işlenen kayıt stuck PROCESSING kalabilir (early-ack, redelivery yok)
→ periyodik sweeper önerilir; pg_notify deploy pencerelerinde düşebilir, kritik tetiklemede doğrudan
enqueue daha güvenilir. Tipik adımları: turkce-konusma-metne-asr, yuz-duygu-jest-analizi.