10
votes

PowerShell 3.0 - Flux de travail - Limiter le nombre d'exécutions parallèles

Je clonage VMS sur ESX Server à partir du modèle. Le code simplifié ressemble à ceci:

$WWE = New-PSWorkflowExecutionOption  -SessionThrottleLimit 4
Set-PSSessionConfiguration -Name microsoft.powershell.workflow `
   -SessionTypeOption $WWE 
Get-PSSessionConfiguration microsoft.powershell.workflow | 
fl SessionThrottleLimit


0 commentaires

3 Réponses :


3
votes

Une solution triviale consiste à diviser la liste en petits morceaux et à utiliser cela comme une entrée pour une version parallèle. Comme si, xxx


0 commentaires

15
votes

Il y a une option pour limiter le nombre de processus parallèles dans une boucle parallèle de foresach à l'aide de -throttlelimit n . C'est génial de réduire le parallélisme, mais si vous essayez un nombre élevé, le système peut toujours vous limiter à 5, en fonction de toutes les versions de votre logiciel (yay! Microsoft Cohorence). Je sais que la question est vieille, mais comme il est venu sur Google sans réponse décente, je pensais que je trimé. XXX


0 commentaires

1
votes

Je voulais juste ajouter ce détail, le commutateur THROTLELIMIT mentionné ci-dessus est disponible dans PowerShell V4.0, ce n'est pas disponible en v3.0. Nous avons un mélange de serveurs 2.0 et 3.0


1 commentaires

V3 est particulièrement mauvais, car même s'il a une limite de 5 flux de travail, il ne les réutilisera pas avant d'avoir tout terminé. Donc, il fonctionne vraiment dans des lots de 5 seulement. Afaik cette même limitation n'existe pas dans V4. tl; DR n'utilise probablement pas de flux de travail dans v3.