Hardcode profile_ids di worker gagal saat agency scale 100+ akun Shopee, TikTok Shop, atau Tokopedia. Profile pool mengelola set profile per tier (prod, warm, burn) di Redis — worker pop profile yang cocok, bukan assign tetap.
Arsitektur
CMDB (Postgres/Notion) → sync → Redis SET mlx:pool:prod Health cron → probe start/stop → demote failed Worker → SPOP atau SRANDMEMBER + lease Ban signal → SMOVE prod → burn
Redis keys
| Key | Type | Tujuan |
|---|---|---|
mlx:pool:prod | SET | Profile siap job production |
mlx:pool:warm | SET | Sedang warm trust / cookie |
mlx:pool:burn | SET | Ban atau forensics — jangan route job |
mlx:profile:meta:{uuid} | HASH | geo, platform, client_id, last_probe |
Pilih profile geo/platform
def pick_profile(platform: str, geo: str) -> str | None:
candidates = r.smembers("mlx:pool:prod")
for pid in candidates:
meta = r.hgetall(f"mlx:profile:meta:{pid}")
if meta.get("platform") == platform and meta.get("geo") == geo:
if try_lease(pid, WORKER_ID):
return pid
return None
Cross-listing SEA: satu profile per marketplace — SEA CMDB (ID) · SEA CMDB (EN).
Health probe
- Cron tiap 6 jam: start profile → CDP ping → stop
- Gagal 3x berturut →
SMOVE prod warmatau alert - Metrics: Redis exporter sidecar (EN)
Burn tier
Saat ban signal: SMOVE prod burn, pause routing untuk UUID itu. Lihat Ban recovery (ID).
Detail lengkap: versi Inggris.
Terkaait
Multilogin Profile Pool Manager Recipe
Queue Worker (ID)
Ban recovery (ID)
SEA CMDB (ID)
Profile Pool (VI)
Pengungkapan: MLX-MMO afiliasi dengan Multilogin. 70+ panduan EN tersedia.