@@ -229,3 +229,35 @@ await api.post(`/rest/items/${itemId}/variations/${varId}/variation_properties`,
|
|||||||
**Fix:** Bulk-Operationen immer sequenziell (eins nach dem anderen). Delay ≥ 1.500ms wenn andere Services parallel laufen. **Siehe DOJO.md #2**
|
**Fix:** Bulk-Operationen immer sequenziell (eins nach dem anderen). Delay ≥ 1.500ms wenn andere Services parallel laufen. **Siehe DOJO.md #2**
|
||||||
|
|
||||||
---
|
---
|
||||||
|
|
||||||
|
## 16. `/rest/batch` als Write-Limit-Umgehung erwarten
|
||||||
|
|
||||||
|
```javascript
|
||||||
|
// FALSCH: "20 Writes in einem Request = nur 1 Write fürs Budget"
|
||||||
|
const payloads = items.slice(0, 20).map(i => ({ resource: '...', method: 'POST', body: {...} }));
|
||||||
|
await fetch('/rest/batch', { body: JSON.stringify({ payloads }) });
|
||||||
|
// → Zählt intern als 20 einzelne Writes!
|
||||||
|
```
|
||||||
|
|
||||||
|
**Problem:** `/rest/batch` reduziert HTTP-Roundtrips, aber das Write-Budget von Plenty zählt jede Operation einzeln. 20 Writes pro Batch = 20 Writes fürs Rate Limit. Kein Vorteil beim "long period write limit".
|
||||||
|
|
||||||
|
**Fix:** Batch nur für HTTP-Overhead-Reduktion nutzen, nicht als Rate-Limit-Umgehung. Für Writes AIMD-basiertes Rate Limiting verwenden. **Siehe DOJO.md #29, #30**
|
||||||
|
|
||||||
|
---
|
||||||
|
|
||||||
|
## 17. Fester Delay für lang laufende Bulk-Operationen
|
||||||
|
|
||||||
|
```javascript
|
||||||
|
// FALSCH: Fester Delay für tausende Requests
|
||||||
|
const DELAY = 1000; // Tagsüber zu schnell, nachts zu langsam
|
||||||
|
for (const item of items) {
|
||||||
|
await sleep(DELAY);
|
||||||
|
await api.post(...);
|
||||||
|
}
|
||||||
|
```
|
||||||
|
|
||||||
|
**Problem:** Tagsüber konkurrieren andere Services um dasselbe Rate-Limit-Budget → 429er. Nachts ist die API frei → unnötig langsam. Fester Delay kann beides nicht optimal bedienen.
|
||||||
|
|
||||||
|
**Fix:** AIMD Rate Limiting: bei Erfolg schneller werden, bei 429 verdoppeln. Konvergiert automatisch zum Optimum. **Siehe DOJO.md #30**
|
||||||
|
|
||||||
|
---
|
||||||
|
|||||||
Reference in New Issue
Block a user