SPB Git

spb/crea-ka

Public

Créa·Ka — annuaire public cross-plateforme des créateurs de contenu québécois (crea-ka.com)

Concurrence par acteur (run_concurrency) : ka-facebook et ka-threads plafonnent concurrency à 6 dans leur schéma d'input — l'envoi de 10 faisait rejeter TOUS leurs runs en 400 depuis des jours (cause réelle des passages à zéro, pas un mur de login). Facebook débloqué : 1 402 fiches enrichies au passage forcé

Simon-Pierre Boucher committed (Aug 21, 2026) parent cac232a Browse files

1 changed file +11 −4

Unified Split
modified creaka/connectors/apify_social.py +11 −4
@@ -175,6 +175,10 @@ class _ApifySocialEnrich(BaseConnector):
175 kind = "enrichment" 175 kind = "enrichment"
176 platform = "" # plateforme canonique (§6.2) 176 platform = "" # plateforme canonique (§6.2)
177 actor = "" # nom court de l'acteur (ka-instagram…) 177 actor = "" # nom court de l'acteur (ka-instagram…)
178+ # concurrence interne du run — DOIT respecter le `maximum` du schéma
179+ # d'input de l'acteur, sinon Apify rejette le run en 400 (cause des
180+ # passages facebook/threads à zéro, diagnostiqué le 2026-08-21)
181+ run_concurrency = RUN_CONCURRENCY
178 cap = 3000 # comptes max par passage (shardé en parallèle) 182 cap = 3000 # comptes max par passage (shardé en parallèle)
179 revisit_days = REVISIT_DAYS # re-sonde hebdo par défaut (env APIFY_REVISIT_DAYS) 183 revisit_days = REVISIT_DAYS # re-sonde hebdo par défaut (env APIFY_REVISIT_DAYS)
180 content_key = "" # clé du contenu récent dans l'item acteur 184 content_key = "" # clé du contenu récent dans l'item acteur
@@ -229,7 +233,7 @@ class _ApifySocialEnrich(BaseConnector):
229 items = run_actor_sharded( 233 items = run_actor_sharded(
230 self.actor, 234 self.actor,
231 {"proxyConfiguration": RESIDENTIAL, 235 {"proxyConfiguration": RESIDENTIAL,
232− "concurrency": RUN_CONCURRENCY, 236+ "concurrency": self.run_concurrency,
233 **self.extra_input()}, 237 **self.extra_input()},
234 sorted(targets), 238 sorted(targets),
235 # passage forcé : tranches plus grosses (bassin entier / 32 runs) 239 # passage forcé : tranches plus grosses (bassin entier / 32 runs)
@@ -368,6 +372,9 @@ class ApifyX(_ApifySocialEnrich):
368 source_id = "x-apify" 372 source_id = "x-apify"
369 platform = "x" 373 platform = "x"
370 actor = "ka-x" 374 actor = "ka-x"
375+ # l'endpoint syndication de X rend des 429 en rafale au-delà de ~4
376+ # requêtes simultanées par run (constat 2026-08-21)
377+ run_concurrency = 4
371 cap = 1800 378 cap = 1800
372 content_key = "recent_tweets" 379 content_key = "recent_tweets"
373 metric_map = {"following": "following", "tweets_count": "tweets", 380 metric_map = {"following": "following", "tweets_count": "tweets",
@@ -385,9 +392,7 @@ class ApifyX(_ApifySocialEnrich):
385 "top_hashtags": "top_hashtags", "top_tweet": "top_tweet"} 392 "top_hashtags": "top_hashtags", "top_tweet": "top_tweet"}
386 393
387 def extra_input(self) -> dict: 394 def extra_input(self) -> dict:
388− # concurrence réduite : l'endpoint syndication de X rend des 429 en 395+ return {"maxTweets": 20}
389− # rafale au-delà de ~4 requêtes simultanées par run (constat 2026-08-21)
390− return {"maxTweets": 20, "concurrency": 4}
391 396
392 def bio_urls(self, it: dict) -> list[str]: 397 def bio_urls(self, it: dict) -> list[str]:
393 return [it.get("website") or ""] 398 return [it.get("website") or ""]
@@ -397,6 +402,7 @@ class ApifyFacebook(_ApifySocialEnrich):
397 source_id = "facebook-apify" 402 source_id = "facebook-apify"
398 platform = "facebook" 403 platform = "facebook"
399 actor = "ka-facebook" 404 actor = "ka-facebook"
405+ run_concurrency = 6 # maximum du schéma d'input de ka-facebook
400 cap = 400 406 cap = 400
401 revisit_days = 7 407 revisit_days = 7
402 metric_map = {"category": "category"} 408 metric_map = {"category": "category"}
@@ -406,6 +412,7 @@ class ApifyThreads(_ApifySocialEnrich):
406 source_id = "threads-apify" 412 source_id = "threads-apify"
407 platform = "threads" 413 platform = "threads"
408 actor = "ka-threads" 414 actor = "ka-threads"
415+ run_concurrency = 6 # maximum du schéma d'input de ka-threads
409 cap = 60 416 cap = 60
410 revisit_days = 7 417 revisit_days = 7
411 content_key = "recent_posts" 418 content_key = "recent_posts"
412 419
Menu

Theme