pizza4ever
Lt. Commander
- Registriert
- Apr. 2009
- Beiträge
- 1.691
Hallo zusammen,
ich schreibe gerade meinen Code für das Powershell V7 -parallel um und habe dazu eine Umsetzungsfrage:
Ich möchte einen größeren Block per Foreach Parallelisieren, der theoretisch gut parallelisierbar ist und am Ende einen Webservice aufruft.
Im Endeffekt bekomme ich es nicht hin, obwohl ich brav die Regeln die MS gepostet hat versucht habe einzuhalten und Teile / Unit Tests auch zu funktionieren, das Zusammengebaute aber nicht.
Nun ist meine Idee folgende:
Ich zerlege das Foreach in zwei Teile:
1.) Sequentiellen Teil, der mir die Aufrufe aufbaut (der ist eh schnell)
2.) Parallelisierten Teil, der die in 1.) zusammengestellte Aufrufe nur noch per Invoke-RestMethod ausführt.
Hierfür ist meine Idee:
in 1.) Baue ich ein - und das ist meine Frage - Powershell Object? auf, welches ein Array (Arraylist?) sein muss welches ich dann an Invoke Restmethod schicke?
Das Objekt - oder wie auch immer es umgesetzt werden soll - sollte in in Etwa wie folgt aussehen:
Bezeichnung | HDD-Pfad | JSON Request | JSON Response (muss von 2.) befüllt werden) | noch ein paar sonstige Integers
Dieses Objekt würde ich dann per Foreach in 2.) an Invoke Restmethod übergeben.
Fragen:
Danke für eure Einschätzung.
ich schreibe gerade meinen Code für das Powershell V7 -parallel um und habe dazu eine Umsetzungsfrage:
Ich möchte einen größeren Block per Foreach Parallelisieren, der theoretisch gut parallelisierbar ist und am Ende einen Webservice aufruft.
Im Endeffekt bekomme ich es nicht hin, obwohl ich brav die Regeln die MS gepostet hat versucht habe einzuhalten und Teile / Unit Tests auch zu funktionieren, das Zusammengebaute aber nicht.
Nun ist meine Idee folgende:
Ich zerlege das Foreach in zwei Teile:
1.) Sequentiellen Teil, der mir die Aufrufe aufbaut (der ist eh schnell)
2.) Parallelisierten Teil, der die in 1.) zusammengestellte Aufrufe nur noch per Invoke-RestMethod ausführt.
Hierfür ist meine Idee:
in 1.) Baue ich ein - und das ist meine Frage - Powershell Object? auf, welches ein Array (Arraylist?) sein muss welches ich dann an Invoke Restmethod schicke?
Das Objekt - oder wie auch immer es umgesetzt werden soll - sollte in in Etwa wie folgt aussehen:
Bezeichnung | HDD-Pfad | JSON Request | JSON Response (muss von 2.) befüllt werden) | noch ein paar sonstige Integers
Dieses Objekt würde ich dann per Foreach in 2.) an Invoke Restmethod übergeben.
Fragen:
- ist mein Ansatz richtig, das Foreach zu zerlegen und nur den zeitkritischen Pfad zu parallelisieren? Mir scheint es so, dass man bei Foreach - Parallel kaum noch vernünftig debuggen kann und daher kam ich auf die Idee.
- Welches Objekt sollte ich wählen und wie muss das aufgebaut sein? Ein Globales Arraylist aus Powershell-Objekten? (Ja, ich vermeide globale Variablen auch wo es geht)
Danke für eure Einschätzung.