Ugrás a fő tartalomhoz

Queue Rendszer

Áttekintés

Laravel Queue + Horizon (Redis) - párhuzamos job feldolgozás.

Komponensek

Jobs

  • QueueBlogPostJob - Blog post generálás
  • QueueProductDescriptionJob - 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_jobs tábla

Queue Státuszok

User-facing (queue táblák: blog_post_queues, product_description_queues):

  • pending - Várakozik
  • processing - Feldolgozás alatt
  • completed - Sikeres
  • failed - Hiba történt
  • waiting_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ár
  • deployed - Deployed to target
  • deployment_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