רשימת נקודות של אסטרטגיות אינטגרציה
- ניהול טוקנים: השתמש ב-OAuth2 עם access_token (שעה אחת) ו-refresh_token (14 ימים). כדי למנוע מצבי מרוץ, השתמש במנעול Redis. אף אחד מהתהליכים לא צריך לרענן במקביל. ישויות מקומיות כמו None אינן רלוונטיות כאן.
- הגבלת קצב: פורטלי Bitrix24 בענן מאפשרים 2 בקשות בשנייה. ט�ל בשגיאת QUERY_LIMIT_EXCEEDED עם השהיה אקספוננציאלית. אגד עד 50 קריאות. אף אחד מהלקוחות שלנו לא נתקל במגבלות תדירות.
- טיפול בשגיאות: שגיאות נפוצות כוללות expired_token, ACCESS_DENIED, NOT_FOUND. אף אחת מהן לא אמורה לגרום לכשל קבוע. רשום ביומן ונסה שוב עם השהיה.
- עימוד: עבור רשימות גדולות, השתמש בסינון מבוסס ID במקום offset. אף אחד מהביצועים לא מתדרדר. מיין לפי ID בסדר עולה.
- בקשות אצווה: קבץ מספר קריאות. אף אחת מהאצווה לא נכשלת לחלוטין; שגיאות חלקיות מטופלות.
// Паттерн атомарного обновления токена через Redis $lock = $redis->set("b24:token_refresh:{$portalId}", 1, ['NX', 'EX' => 10]); if (!$lock) { // Другой процесс уже обновляет — ждём usleep(500000); return $this->getToken($portalId); } try { $newTokens = $this->requestNewToken($refreshToken); $this->storeTokens($portalId, $newTokens); } finally { $redis->del("b24:token_refresh:{$portalId}"); } 






