저는 powershell에서 워크 플로를 고수하고 있습니다. 이상한 행동을하고 있습니다. 아래 스크립트는 디렉토리에 많은 파일이 없을 때 작동합니다. 어떤 지점이 지나면 6 행 (워크 플로 상태 표시 줄이 나타납니다)에서 메모리를 마운드로 이동 한 다음 (적어도 30 분 후) 충돌합니다. 이 충돌은 파일 디렉토리가 1.25GB 이상일 때 발생하지만 $Path
에는 50MB 파일 만있는 경우에는 발생하지 않습니다. 다음은 쉬운 시험입니다 : 이제Powershell 워크 플로 메모리 및 충돌시 괴롭힘
Workflow Test-Me {
Param
(
$Path = "c:\temp",
$Days = 0
)
$Files = InlineScript{
Get-ChildItem -Path $using:Path -File -Recurse -Force | Where-Object {$_.LastWriteTime -lt ((get-date).AddDays(-$using:Days))}
}
$Files
}
이상한 일입니다 Get-ChildItem -Path $using:Path -File -Recurse -Force | Where-Object {$_.LastWriteTime -lt ((get-date).AddDays(-$using:Days))}
은 (일반 기능 또는 단지 쉘의 줄에) 워크 플로우의 외부에서 실행되는 심지어 미만 분에 완료 될 때 파일 1.25GB.
메모리를 먹고 오랜 시간이 걸리고 충돌을 일으키는 워크 플로는 무엇입니까? 분명히 예기치 않은 일을하고 있습니다. 다시 말하지만, 디렉토리에 파일이 몇 개 밖에없는 경우에도 작동합니다.
또한 해결책/해결 방법이 유용 할 것입니다.
는 연구 :
Activity to invoke the Microsoft.PowerShell.Management\Get-ChildItem command in a workflow
Running Windows PowerShell Commands in a Workflow