Passer au contenu principal

Exécution parallèle avec la Concurrency de Laravel

Cas du mode stdio

Démarrer un processus par exécution n’est pas idéal, mais seule cette écriture fonctionne. Comme Concurrency effectue en interne une sérialisation complexe, on renvoie uniquement la chaîne issue de content() et non l’objet SessionEvent.
use Revolution\Copilot\Facades\Copilot;
use Illuminate\Support\Facades\Concurrency;

$prompt = 'Tell me something about Copilot.';

[$gpt5_response, $sonnet_response] = Concurrency::run([
    fn () => Copilot::run($prompt, config: ['model' => 'gpt-5.2'])->content(),
    fn () => Copilot::run($prompt, config: ['model' => 'claude-sonnet-4.5'])->content(),
]);

echo 'GPT-5 Response: '.$gpt5_response;
echo 'Claude Sonnet Response: '.$sonnet_response;

Cas du mode TCP

Sans démarrage de processus, ça semble plus rapide, mais en pratique la différence est négligeable. Avec le driver Process, un timeout à 60 secondes est fréquent des deux côtés. Avec le driver fork réservé au CLI, seule une des exécutions a abouti. Ce n’est pas un échec global via exception. Comme seule gpt-5 échouait, en passant à gpt-5.2 les deux réussissent. C’était peut-être simplement un problème de temps de réponse du modèle. La Concurrency existe comme fonctionnalité, mais sa mise en pratique reste incertaine. Pour les traitements longs, utilisez plutôt une file d’attente.
Pour les dernières informations, consultez le dépôt GitHub.
Dernière modification le 13 juillet 2026

Sujets connexes

ConcurrenceClient HTTP