Queue
Ngorei Queue adalah sistem antrian yang powerful untuk mengelola tugas asynchronous dalam Ngorei Framework. Mendukung multiple queue, priority queueing, batch processing, dan monitoring.
Konfigurasi Dasar
Inisialisasi Queue
$Tds = new Ngorei();
$queue = $Tds->Queue('custom_queue_table');//nama tabel kustom
Konfigurasi Cache
$queue->setCacheConfig([
'ttl' => 300,
'prefix' => 'queue:',
'enabled' => true,
'views_ttl' => 60,
'stats_ttl' => 300
]);
Setup Database
// Membuat tabel queue
$queue->createQueueTable();
// Cek keberadaan tabel
if ($queue->tableExists()) {
// Tabel sudah ada
}
Cara Penggunaan
Batch Processing
Memproses multiple item sekaligus untuk meningkatkan performa.
// Proses multiple items
$results = $queue->processBatch('email_queue', function($data) {
// Process batch data
return sendBulkEmails($data);
}, 10); // batch size
// Results berisi informasi success/fail untuk setiap item
Priority Queue
Menambahkan item dengan prioritas tertentu. Item dengan prioritas lebih tinggi akan diproses lebih dulu.
// Push dengan prioritas
$queue->pushWithPriority('email_queue', $data, 10); // 0-10, 10 tertinggi
// Item prioritas 10 akan diproses sebelum item prioritas lebih rendah
Error Handling
Penanganan error yang robust untuk memastikan reliabilitas sistem antrian.
try {
$queue->push('email_queue', $data);
} catch (Exception $e) {
$error = $queue->getLastError();
// Log error atau notifikasi admin
error_log("Queue error: " . $error);
}