GNG
Kurucu
Merhaba arkadaşlar,
Bu konuda PHP projelerinde queue (kuyruk) sistemi nasıl çalışır onu anlatıyorum. Ağır işlemleri arka planda çalıştırmak için kullanılır.
1. Queue Mantığı
[]Yapılacak işlemler sıraya alınır
[]Worker (işçi) bu işlemleri tek tek işler
[]Kullanıcı beklemeden işlem tamamlanır
[]Performans artışı sağlanır
2. Basit Queue (Veritabanı)
3. İş Ekleme
4. Worker (İşleyici)
5. Cron ile Çalıştırma
Her dakika çalışarak kuyruğu işler.
6. Kullanım Alanları
Sonuç
Queue sistemi sayesinde siteniz daha hızlı ve stabil çalışır.
Büyük projelerde olmazsa olmazdır.
Bu konuda PHP projelerinde queue (kuyruk) sistemi nasıl çalışır onu anlatıyorum. Ağır işlemleri arka planda çalıştırmak için kullanılır.
1. Queue Mantığı
[]Yapılacak işlemler sıraya alınır
[]Worker (işçi) bu işlemleri tek tek işler
[]Kullanıcı beklemeden işlem tamamlanır
[]Performans artışı sağlanır
2. Basit Queue (Veritabanı)
SQL:
CREATE TABLE jobs (
id INT AUTO_INCREMENT PRIMARY KEY,
task TEXT,
status TINYINT DEFAULT 0
);
3. İş Ekleme
PHP:
<?php
$sorgu = $pdo->prepare("INSERT INTO jobs (task) VALUES (?)");
$sorgu->execute(["mail_gonder"]);
?>
4. Worker (İşleyici)
PHP:
<?php
$sorgu = $pdo->query("SELECT * FROM jobs WHERE status=0 LIMIT 1");
$job = $sorgu->fetch();
if ($job) {
// işlem yapılır
echo "İş yapıldı: " . $job['task'];
$guncelle = $pdo->prepare("UPDATE jobs SET status=1 WHERE id=?");
$guncelle->execute([$job['id']]);
}
?>
5. Cron ile Çalıştırma
Kod:
* * * * * php /home/site/worker.php
Her dakika çalışarak kuyruğu işler.
6. Kullanım Alanları
[]Mail gönderme sistemleri
[]Resim işleme (resize)
[]Bildirim gönderme
[]Ağır veri işlemleri
Sonuç
Queue sistemi sayesinde siteniz daha hızlı ve stabil çalışır.
Büyük projelerde olmazsa olmazdır.