דלג לתוכן הראשי

Redis Persistence ו-BullMQ Resilience

סקירה כללית

Agentix משתמשת ב-Redis עבור:
  • BullMQ queues
  • rate-limit counters
  • audit buffers
  • conversation locks
אובדן Redis עלול לגרום לאובדן jobs פעילים, לאיפוס rate limits ולהשתחררות locks, אבל BullMQ ומנגנוני retry אמורים לאפשר התאוששות סבירה. משתנה סביבה:
  • REDIS_URL

1. Persistence ב-Railway Redis

ב-Railway Redis משתמשים בדרך כלל ב-RDB snapshots:
  • snapshots תקופתיים
  • זמן התאוששות מהיר
  • חלון אובדן אפשרי של שניות עד דקות
אין גישה מלאה ל-redis.conf, ולכן לא ניתן להכריח AOF או לשנות save intervals ידנית.

2. אימות שה-persistence פעיל

redis-cli -u "$REDIS_URL" INFO persistence
בדקו במיוחד:
FieldExpected
rdb_last_save_timetimestamp עדכני
rdb_changes_since_last_saveמספר נמוך
rdb_bgsave_in_progress0 או 1
aof_enabledלרוב 0
loading0
אפשר גם לבדוק:
curl https://api.agentix.app/health

3. מה שורד restart

סוג נתוןשורד?
BullMQ waiting jobsכן
delayed jobsכן
active jobs בזמן crashמשוחזרים דרך stall detection
rate-limit countersבדרך כלל כן
audit bufferחלקית
locksמשתחררים

4. עמידות BullMQ

BullMQ מוגדר כך ש:
  • jobs קריטיים מקבלים מספר ניסיונות חוזרים
  • backoff אקספוננציאלי מטפל בשגיאות זמניות
  • stalled jobs מזוהים ומוחזרים לעיבוד
Redis client מוגדר עם:
  • maxRetriesPerRequest: null
  • retryStrategy
  • reconnectOnError
  • enableReadyCheck: true

5. טיפול בתקלה

כאשר יש תקלה ב-Redis:
  1. בדקו חיבוריות
  2. ודאו שהשירות רץ ב-Railway
  3. בדקו queue backlogs
  4. ודאו שה-workers מצליחים להתחבר מחדש
  5. בדקו /health
אם יש כמות גדולה של stalled jobs:
  • נתחו worker logs
  • בדקו אם הייתה נפילת Redis
  • החליטו אם צריך pause זמני ל-queues

6. Checklist לאחר התאוששות

  • /health מחזיר redis: ok
  • queues ממשיכים להתקדם
  • אין reconnect loop בלתי נגמר
  • אין הצטברות חריגה של failed jobs
  • המערכת חזרה לעבד הודעות חדשות

7. מתי להסלים

הסלימו אם:
  • Redis לא חוזר תוך חלון זמן סביר
  • queues לא מתאוששים למרות חיבוריות תקינה
  • jobs קריטיים ממשיכים להיכשל
  • קיימת השפעה רחבה על לקוחות או על workflow execution