prepare(" SELECT id FROM invoice_processing_queue WHERE status = 'pending' ORDER BY created_at ASC LIMIT 1 "); $stmt->execute(); $queueId = $stmt->fetchColumn(); if (!$queueId) { echo "Queue empty. Waiting...\n"; sleep(5); continue; } echo "Processing Queue ID: $queueId\n"; $success = InvoiceProcessor::processQueueItem((int)$queueId); if ($success) { echo "Success for Queue ID $queueId\n"; } else { echo "Failed for Queue ID $queueId\n"; } } } catch (Exception $e) { echo "Fatal Worker Error: " . $e->getMessage() . "\n"; } finally { flock($fp, LOCK_UN); fclose($fp); }