Queue Rendszer
Áttekintés
Laravel Queue + Horizon (Redis) - párhuzamos job feldolgozás.
Komponensek
Jobs
QueueBlogPostJob- Blog post generálásQueueProductDescriptionJob- Termékleírás generálás
Queues (Horizon)
// config/horizon.php
'production' => [
'supervisor-1' => [
'connection' => 'redis',
'queue' => ['default'],
'balance' => 'auto',
'processes' => 10,
'tries' => 3,
],
],
Retry Logic
- Max attempts: 3 (config:
queue.max_prompt_leak_attempts) - Backoff: Exponential (1 sec, 2 sec, 4 sec)
- Failed:
failed_jobstábla
Queue Státuszok
User-facing (queue táblák: blog_post_queues, product_description_queues):
pending- Várakozikprocessing- Feldolgozás alattcompleted- Sikeresfailed- Hiba történtwaiting_for_export- Deploy várakozik (ShopAdmin)duplicate- Már létezik (skip)
Server-side (result táblák: automated_generation_results, automated_blog_post_generations):
pending- Generálás várdeployed- Deployed to targetdeployment_failed- Deploy hiba
Flow
1. Request létrehozás
↓
2. Queue item creation (N termék = N queue item)
↓
3. Job dispatch (QueueBlogPostJob / QueueProductDescriptionJob)
↓
4. AI API hívás (Anthropic Claude)
↓
5. Response cleanup (prompt leak detect, format)
↓
6. Queue update (completed/failed)
↓
7. Credit calculation (CreditCalculationService)
↓
8. Deployment (WooCommerce REST API - ha automated)
Monitoring
Horizon Dashboard:
- Production:
https://app.character.hu/horizon - Staging:
https://staging.character.hu/horizon
MySQL Query:
-- Queue státusz összesítés
SELECT status, COUNT(*) FROM blog_post_queues WHERE blog_post_request_id = 1206 GROUP BY status;
Logs:
SELECT level, message FROM logs WHERE channel = 'apiQueue' AND created_at >= '2026-02-05' ORDER BY created_at DESC;
Troubleshooting
🚧 TODO: Gyakori hibák, retry stratégia, stuck job kezelés.
Utolsó frissítés: 2026-02-05