Javascript 节点生成子进程不';t在aws节点10 lambda中执行子进程后执行命令
我试图运行两个子进程,但其中一个子进程似乎被阻止,并最终使节点lambda超时 环境:Javascript 节点生成子进程不';t在aws节点10 lambda中执行子进程后执行命令,javascript,node.js,docker,ffmpeg,child-process,Javascript,Node.js,Docker,Ffmpeg,Child Process,我试图运行两个子进程,但其中一个子进程似乎被阻止,并最终使节点lambda超时 环境: AWS节点10 lambda在docker容器中运行 通过/opt/bin目录中的lambda层访问ffmpeg和ffprobe 子进程执行 我正在child_process.exec中运行ffprobe以获取音频文件的文件格式。我使用exec是因为输出是一个小的json响应(不应该占用太多内存) 子进程。生成 运行ffmpeg后不久,我使用child_process.spawn将音频文件转换为mp3 问
- AWS节点10 lambda在docker容器中运行
- 通过/opt/bin目录中的lambda层访问ffmpeg和ffprobe
当我访问docker容器中正在运行的进程时,只有新的ffmpeg命令似乎正在运行,尽管它不消耗内存,只是挂起——似乎什么也不做。我甚至尝试从docker cli启动ffmpeg命令(避免使用节点env),这工作正常,运行正常。因此,我的问题似乎不是真的在exec和spawn之间,我不是100%确定,但我认为可能是子进程保留在容器中,并在下次调用lambda时恢复 更改为child_process.spawnSync将等待子进程退出并保持更干净,自使用此选项以来,我从未遇到过此问题 如果其他人能提供更详尽的解释,我们将不胜感激